2017-09-22 3 views
1

derzeit mit MySQL 5.7 kann ich die folgende Abfrage den Zugriff auf eine json Feld in der Datenbank ausführen:json Weg in MariaDB

select myData->'$[0].dataflow' from flowtable limit 1; 

Wenn ich die gleiche Abfrage auf MariaDB versuchen es nicht funktioniert, gibt es eine Lösung dieses Problem? Ich dachte, MariaDB wäre vollständig kompatibel mit MySQL und was wäre die entsprechende MariaDB-Syntax?

prost

Antwort

1

In MySQL wurde JSON_EXTRACT() in 5.7.8 hinzugefügt:

JSON_EXTRACT(json_doc, path[, path] ...)

...

MySQL 5.7.9 und höher unterstützt den Operator -> als Abkürzung für diese (JSON_EXTRACT()) Funktion ...

...

In MariaDB (beginnend mit 10.2.3) JSON_EXTRACT() Funktion verwenden, da -> Betreiber derzeit nicht implementiert ist.

MySQL:

SELECT `myData` -> '$[0].dataflow' 
FROM `flowtable` 
LIMIT 1; 

MySQL und MariaDB:

SELECT JSON_EXTRACT(`myData`, '$[0].dataflow') 
FROM `flowtable` 
LIMIT 1; 

See, MySQL db-fiddle und MariaDB dbfiddle.