Maison  >  Questions et réponses  >  le corps du texte

valeur de recherche mysql à partir de json imbriqué

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粉366946380P粉366946380410 Il y a quelques jours508

répondre à tous(1)je répondrai

  • P粉554842091

    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

    répondre
    0
  • Annulerrépondre