[英]How to regexp in MySql json string
讓我們假設這個users
表:
-----------------------------------------
| id | ... | info |
-----------------------------------------
| 1 | ... | {"items":["132","136"]} |
我需要請求獲取具有id == 136
項目的users
。
以下是我構建的sql
但它不起作用,我不明白為什么:
SELECT _u.id FROM users _u WHERE _u.info REGEXP '("items":)([)("136")(])'
先感謝您!
這是使用 MySQL JSON 函數的一種方法:
SELECT *
FROM yourTable
WHERE JSON_SEARCH(JSON_EXTRACT(json, "$.items"), 'one', "136") IS NOT NULL;
對JSON_EXTRACT
的調用首先提取items
鍵下的 JSON 數組。 然后,我們使用JSON_SEARCH
來嘗試查找元素"136"
。
編輯:
如果您確定要搜索的 JSON 始終只是一個關鍵items
以及單個級別 JSON 數組,那么REGEXP
在這里可能是可行的:
SELECT *
FROM yourTable
WHERE json REGEXP '"items":\\[.*"136".*\\]';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.