首頁 >資料庫 >mysql教程 >如何在MySQL中有效率地搜尋JSON數組中的元素?

如何在MySQL中有效率地搜尋JSON數組中的元素?

Susan Sarandon
Susan Sarandon原創
2024-11-29 11:59:09384瀏覽

How to Efficiently Search for Elements within JSON Arrays in MySQL?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn