Heim >Datenbank >MySQL-Tutorial >Wie kann ich JSON-Daten in MySQL basierend auf bestimmten Feldwerten abfragen?

Wie kann ich JSON-Daten in MySQL basierend auf bestimmten Feldwerten abfragen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 10:34:02457Durchsuche

How can I Query JSON Data in MySQL Based on Specific Field Values?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn