Ich habe folgende JSON-Objekt in MySQL gespeichert:MySQL 5.7 JSON_EXTRACT Nutzung
[
{
"key": "user_agent",
"value": "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; rv:11.0) like Gecko"
},
{
"key": "language",
"value": "fr-FR"
},
{
"key": "color_depth",
"value": 24
},
{
"key": "js_fonts",
"value": [
"Arial",
"Arial Black"
]
}
]
Können Sie für die 2. oder 1. Wert von diesem JSON SELECT helfen. Optional wo "Schlüssel" zum Beispiel "user_agent" ist. Ich denke, das wäre besser, da die Wertreihenfolge nicht garantiert ist. Ich kann einfach nicht wirklich herausfinden, wie JSON Pfad zu verwenden, wie beschrieben in: https://dev.mysql.com/doc/refman/5.7/en/json-path-syntax.html
es einfacher zu machen, hier SQL-Anweisung Beispieltabelle zu erstellen:
CREATE TABLE `test` (
`components` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `test` VALUES ('[{\"key\": \"user_agent\", \"value\": \"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; r1.0) like Gecko\"}, {\"key\": \"language\", \"value\": \"fr-FR\"}, {\"key\": \"color_depth\", \"value\": 24}, {\"key\": \"js_fonts\", \"value\": [\"Arial\", \"Arial Black\"]}]');
JSON_EXTRACT (Komponenten, '$ [1]') extrahiert zweites Array:
{"key": "language", "value": "fr-FR"}
Aber es ist nicht genau das, was ich will.