[英]mysql json_extract function
我的 mysql 列名為json
:
{"myarray":[ { "users":"82,191", type":"3" } ]}
這是表格列json
我想找到 id 為 191 的用戶。82 工作正常。 但沒有找到 191 個。
我的 sql 查詢是:
SELECT id
FROM tablename
WHERE JSON_EXTRACT(json, CONCAT('$.myarray[0].users') ) IN (82) --this is working
SELECT id
FROM tablename
WHERE JSON_EXTRACT(json, CONCAT('$.myarray[0].users') ) IN (191) --but this is not working. nothing fetched. empty results.
如果 json 也有 191,我如何獲取結果?
JSON_EXTRACT在您的情況下返回帶引號的字符串"82,191"
,因此對於搜索,您可以使用JSON_UNQUOTE與FIND_IN_SET的組合,例如:
SELECT id
FROM tablename
WHERE FIND_IN_SET(82, JSON_UNQUOTE(
JSON_EXTRACT(json, '$.myarray[0].users')
)) > 0;
或直接(不取消引用)
SELECT id
FROM tablename
WHERE FIND_IN_SET (82, json ->> '$.myarray[0].users')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.