日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

mysql 生成json,结合CONCAT()和COALESCE()在MySQL中生成JSON

發布時間:2023/11/27 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 生成json,结合CONCAT()和COALESCE()在MySQL中生成JSON 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在從函數構建小JSON塊,我需要過濾空值,同時引用像這樣的非空值(MySQL 5.0,所以沒有內置的JSON函數):

COALESCE(CONCAT('[',

group_concat(

CONCAT('{ "key": "', REPLACE(a.val, '"', '\\"'), '"}')

SEPARATOR ', ')

, ']'), 'null') AS jsonval

輸出類似這樣的東西(這是一個嵌入完整JSON塊的值):

>帶值:[{“key”:“foo”},{“key”:“bar”},{“key”:“baz”}]

>沒有值(NULL):null

>帶空字符串:[{“key”:“”}]

對于每個a.val,我想在我的列表中添加一個條目,但是如果沒有找到值,則將字符串設置為null而不是完整列表.它工作得很好,但我需要在結果JSON中處理空字符串以及NULL值為null.

REPLACE(),CONCAT()和COALESCE()在空值上很好地協同工作,但是沒有檢測到空字符串,我怎樣才能以相同的方式處理NULL和空字符串?

我已經看到有關條帶空值的this question,我正在尋找相反的結果.

解決方法:

只是迭代你的想法!

COALESCE(CONCAT('[',

group_concat(

CONCAT('{ "key": ',COALESCE(CONCAT('"', REPLACE(a.val, '"', '\\"'), '"'), 'null') ,'}')

SEPARATOR ', ')

, ']'), 'null') AS jsonval

編輯后:

COALESCE(CONCAT('[',

group_concat(

CONCAT('{ "key": ',

CASE WHEN a.val IS NULL THEN 'null'

WHEN a.val = '' THEN 'null'

ELSE CONCAT('"', REPLACE(a.val, '"', '\\"'), '"')

END

,'}')

SEPARATOR ', ')

, ']'), 'null') AS jsonval

標簽:json,mysql,null,coalesce

來源: https://codeday.me/bug/20190527/1167068.html

總結

以上是生活随笔為你收集整理的mysql 生成json,结合CONCAT()和COALESCE()在MySQL中生成JSON的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。