簡體   English   中英

mysql json_extract function

[英]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_UNQUOTEFIND_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM