Heim >Datenbank >MySQL-Tutorial >Wie kann ich JSON-Daten in MySQL basierend auf bestimmten Feldwerten abfragen?
JSON-Daten in MySQL abfragen
Problem:
Sie haben eine MySQL-Tabelle mit einem Spalte, die JSON-Objekte speichert. Sie müssen Abfragen ausführen, die Ergebnisse basierend auf bestimmten JSON-Feldwerten filtern.
Lösung: Verwendung der Funktion json_extract
MySQL 5.7 und später führte die Funktion json_extract ein, die Ihnen dies ermöglicht um bestimmte Werte aus JSON-Objekten zu extrahieren, die in einer Spalte gespeichert sind. Dadurch können Sie Abfragen wie die folgenden durchführen:
<code class="sql">SELECT user_id, json_data FROM articles WHERE json_extract(json_data, '$.title') LIKE '%CPU%';</code>
Beispiel:
Beachten Sie die folgende Tabelle:
<code class="sql">CREATE TABLE articles ( id int NOT NULL, user_id int NOT NULL, json_data json NOT NULL ); INSERT INTO articles (id, user_id, json_data) VALUES (1, 1, '{"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"}'), (2, 1, '{"url":"http://www.ebay.com/sch/CPUs-Processors-/164/i.html","title": "Computer and Processors"}'), (3, 2, '{"url":"https://www.youtube.com/watch?v=tntOCGkgt98","title": "Funny Cats Compilation"}');</code>
Ausführen der Abfrage Das oben gezeigte Ergebnis gibt das folgende Ergebnis zurück:
<code class="sql">+---------+--------------------------------------------------------------------------------------------------+ | user_id | json_data | +---------+--------------------------------------------------------------------------------------------------+ | 1 | {"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"} | +---------+--------------------------------------------------------------------------------------------------+</code>
Dies zeigt, wie die Funktion json_extract zum Filtern von JSON-Daten in MySQL verwendet werden kann.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Daten in MySQL basierend auf bestimmten Feldwerten abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!