Heim >Datenbank >MySQL-Tutorial >Wie kann ich JSON-Daten in MySQL-Abfragen effizient suchen und filtern?

Wie kann ich JSON-Daten in MySQL-Abfragen effizient suchen und filtern?

DDD
DDDOriginal
2024-12-10 17:51:10451Durchsuche

How Can I Efficiently Search and Filter JSON Data within MySQL Queries?

JSON-Datensuche in MySQL-Abfragen

Abfragen in MySQL mit JSON-Daten werden immer wichtiger. JSON oder JavaScript Object Notation ist ein textbasiertes Format, das häufig für den Datenaustausch verwendet wird. Um bestimmte Daten effizient aus dem in MySQL gespeicherten JSON abzurufen, sind bestimmte Abfragemodifikationen erforderlich.

Eine dieser Modifikationen umfasst die Extraktion von Daten basierend auf Schlüssel-Wert-Paaren. Die bereitgestellte Abfrage

SELECT  `id` ,  `attribs_json` 
FROM  `products` 
WHERE  `attribs_json` REGEXP  '"1":{"value":[^"3"$]'

beabsichtigt, Schlüssel gleich „1“ und Werte ungleich „3“ zu extrahieren.

Wenn Sie MySQL Version 5.7 oder höherSie können einen einfacheren Ansatz mit der Funktion JSON_EXTRACT() wie folgt verwenden:

SELECT JSON_EXTRACT(name, "$.id") AS name
FROM table
WHERE JSON_EXTRACT(name, "$.id") > 3
Diese Abfrage extrahiert den „id“-Wert aus dem JSON-Objekt in der Spalte „name“ und filtert Ergebnisse, bei denen die „id“ größer als 3 ist.

Umfassende Details zu JSON-Suchfunktionen in MySQL finden Sie in der offiziellen MySQL-Referenz Handbuch: https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html.

Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Daten in MySQL-Abfragen effizient suchen und filtern?. 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