Heim >Datenbank >MySQL-Tutorial >Wie kann man in MySQL effizient nach Elementen in JSON-Arrays suchen?
JSON-Arrays in MySQL durchsuchen
Angenommen, Sie haben eine MySQL-Tabelle mit einer JSON-Spalte namens „data“, die ein Array enthält. Sie möchten alle Zeilen abrufen, in denen eines der Array-Elemente größer als 2 ist.
Die Abfrage
SELECT * from my_table WHERE JSON_EXTRACT(data, '$[*]') > 2;
gibt ein falsches Ergebnis zurück, da sie unabhängig von den Array-Werten immer als wahr ausgewertet wird .
So suchen Sie nach einer Ganzzahl in einem Array:
JSON_CONTAINS('[1,2,3,4,5]','7','$') # Returns: 0 JSON_CONTAINS('[1,2,3,4,5]','1','$') # Returns: 1
So suchen Sie nach einer Zeichenfolge in einem Array:
JSON_CONTAINS('["a","2","c","4","x"]','"x"','$') # Returns: 1 JSON_CONTAINS('["1","2","3","4","5"]','"7"','$') # Returns: 0
Verwenden Sie für Ihr Szenario die Abfrage:
SELECT * from my_table WHERE JSON_CONTAINS(data, '2', '$');
Diese Abfrage wählt alle Zeilen aus, in denen die Spalte „Daten“ ein Array mit einem Element größer als 2 enthält.
Das obige ist der detaillierte Inhalt vonWie kann man in MySQL effizient nach Elementen in JSON-Arrays suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!