在MySQL 中搜尋JSON 數組
假設您有一個MySQL 表,其中包含一個名為「數據」的JSON 列,其中包含一個數組。您希望檢索其中一個陣列元素大於 2 的所有行。
查詢
SELECT * from my_table WHERE JSON_EXTRACT(data, '$[*]') > 2;
傳回不正確的結果,因為無論陣列的值如何,它總是計算為 true .
在陣列中搜尋字串陣列:
JSON_CONTAINS('[1,2,3,4,5]','7','$') # Returns: 0 JSON_CONTAINS('[1,2,3,4,5]','1','$') # Returns: 1
在陣列中搜尋字串陣列:
JSON_CONTAINS('["a","2","c","4","x"]','"x"','$') # Returns: 1 JSON_CONTAINS('["1","2","3","4","5"]','"7"','$') # Returns: 0
對於您的場景,請使用查詢:
SELECT * from my_table WHERE JSON_CONTAINS(data, '2', '$');
此查詢選擇「資料」列包含元素大於2 的陣列的所有行。
以上是如何在MySQL中有效率地搜尋JSON數組中的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!