valeur de recherche mysql à partir de json imbriqué
P粉366946380
P粉366946380 2023-09-06 14:49:48
0
1
549

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
  1. J'ai également essayé d'utiliser JSON_Table mais je n'ai pas obtenu la valeur json imbriquée exacte dans la condition Where.

P粉366946380
P粉366946380

répondre à tous(1)
P粉554842091

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal