簡體   English   中英

如何在 MySql json 字符串中進行正則表達式

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

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