讓Mysql查詢後直接返回json字符串的方法

字號+ 編輯: 种花家 修訂: 种花家 來源: Oracle 2023-12-03 我要說兩句(0)

曾經在某企業裡, 小編被明確要求sql語句裡不允許使用函數。在這個場景下或許是個變數。

简单梳理一下需求:

  1. 程序员懒得去写struct

  2. 程序员在写某种通用json返回库, 此时查询结果一定是要返回转义后的json的。

5674d57fdcdfd8311bf883be33d0ec63.jpeg

可以看一下mysql5.7~8.0/8.1新出的mysql函数jsonarrayagg()、json_object()和json_objectagg(), 前两个函数可以嵌套使用来输出多行查询结果的json格式

https://docs.oracle.com/en/database/oracle/oracle-database/19/adjsn/generation.html#GUID-C0F8F837-EE36-4EDD-9261-6E8A9245906C

打比方, 一个简单语句输出成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给你还是输出个默认格式的给你,看起来官方是事先盘好的。

完结撒花。

閲完此文,您的感想如何?
  • 有用

    1

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: PHP+JS聊天群

相關課文
  • postgresql的pg_dump備份簡單方法

  • 使用sql語句在MySQL庫中去掉字段左邊、右邊指定字符串

  • 避免mysql全表掃描等影響性能的寫法槼則

  • MySQL編譯錯誤 c++: internal compiler error: Killed (program cc1plus)

我要說說
網上賓友點評