簡單梳理一下需求:
程序員嬾得去寫struct
程序員在寫某種通用json返回庫, 此時查詢結果一定是要返回轉義後的json的。
可以看一下mysql5.7~8.0/8.1新出的mysql函數jsonarrayagg()、json_object()和json_objectagg(), 前兩個函數可以嵌套使用來輸出多行查詢結果的json格式
打比方, 一個簡單語句輸出成json
select fieldA, fieldB from tableX;
改爲
select json_arrayarg(json_object('fieldA', fieldA, 'fieldB', fieldB)) from tableX;
此時輸出json結果爲
[{"fieldA":xxx, "fieldB":xxx}, {"fieldA":xxx, "fieldB":xxx} ...]
是否滿足你的業務需求呢?
如果是輸出單獨一個字段的json結果, 則改爲使用json_objectagg()函數嵌套, 小夥伴們可以自行探索一下。
性能損耗探索
經過測試,即便不將業務庫分割到不同mysql實例的&&高並發情況下, 性能影響與原生查詢幾乎無異。Mysql輸出個json給你還是輸出個默認格式的給你,看起來官方是事先盤好的。
完結撒花。