Maison > Questions et réponses > le corps du texte
J'essaie de rechercher la valeur userId 22 à partir du json imbriqué dans la colonne mysql
Mon json est
'{ "data": [ {"calendarId":"11","userId": "12"}, {"calendarId":"21","userId": "22"} ] }'
J'ai essayé la syntaxe suivante :
1. where JSON_EXTRACT(column_field,'$.userId') = 22 2. where JSON_EXTRACT( column_field, '$.data[*].userId' ) = 22
P粉5548420912023-09-07 09:42:13
Ceci :
select json_extract('{ "data": [ {"calendarId":"11","userId": "12"}, {"calendarId":"21","userId": "22"} ] }','$[0].data[*].userId');
Donné : [“12”,“22”]
Et ça :
select * from json_table(json_extract('{"data": [{"calendarId":"11","userId": "12"},{"calendarId":"21","userId": "22"}]}', '$[0].data[*].userId'), '$[*]' columns (value int path "$")) x ;
Donné :
Valeur |
---|
12 |
22 |
Ajouter une clause WHERE pour trouver simplement la valeur 22
ne devrait pas poser de problème.
Remarque : ce qui précède a été testé avec MySQL 8.x, voir : DBFIDDLE