MySQL bietet eine bequeme Möglichkeit, bestimmte Informationen aus in seiner Datenbank gespeicherten JSON-Daten zu suchen und zu extrahieren. So können Sie eine solche Suche durchführen:
MySQL Version 5.7 und höher
Wenn Sie MySQL Version 5.7 oder höher verwenden, können Sie die Funktion JSON_EXTRACT verwenden. Mit dieser Funktion können Sie einen bestimmten Wert aus einer JSON-Zeichenfolge extrahieren. Um nach einem bestimmten Wert im Feld attribs_json zu suchen, können Sie eine Abfrage wie diese verwenden:
SELECT JSON_EXTRACT(attribs_json, '$.feature."1".value') AS feature_value FROM products WHERE JSON_EXTRACT(attribs_json, '$.feature."1".value') REGEXP '^[^""3"$]'
Diese Abfrage wählt den Wert des Schlüssels „value“ innerhalb des Schlüssels „1“ des „feature“ aus "-Objekt im Feld attribs_json für alle Produkte, die nicht „3“ als Wert haben.
Früheres MySQL Versionen
Für frühere Versionen von MySQL können Sie reguläre Ausdrücke mit dem REGEXP-Operator verwenden, um nach einem Muster innerhalb der JSON-Zeichenfolge zu suchen. Dieser Ansatz ist jedoch komplexer und erfordert eine intensivere Zeichenfolgenanalyse.
Beispielabfrage
Bedenken Sie die folgende JSON-Struktur:
{ "feature": { "1": { "value": "[\"2\",\"3\"]" }, "2": { "value": "[\"1\"]" }, "3": { "value": "[\"1\"]" } } }
An Suchen Sie nach dem Schlüssel „1“ mit einem Wert, der nicht „3“ ist, können Sie Folgendes verwenden Abfrage:
SELECT id, attribs_json FROM products WHERE attribs_json REGEXP '"1":{.*"value":"[^"3"$]$'
Wichtiger Hinweis
Denken Sie bei der Verwendung regulärer Ausdrücke daran, Sonderzeichen in Ihrem Suchmuster zu maskieren, um unbeabsichtigte Übereinstimmungen zu vermeiden. Außerdem kann die Syntax für JSON_EXTRACT und REGEXP je nach der von Ihnen verwendeten spezifischen MySQL-Version leicht variieren.
Das obige ist der detaillierte Inhalt vonWie kann ich bestimmte JSON-Daten effizient von MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!