nilai carian mysql daripada json bersarang
P粉366946380
P粉366946380 2023-09-06 14:49:48
0
1
545

Saya cuba mencari nilai userId 22 dari json bersarang dalam lajur mysql

Json saya ialah

'{
     "data": [
            {"calendarId":"11","userId": "12"},
            {"calendarId":"21","userId": "22"}
           ]
    }'

Saya mencuba sintaks berikut:

1. where JSON_EXTRACT(column_field,'$.userId') = 22

2. where
JSON_EXTRACT(
column_field,
'$.data[*].userId'
) = 22
  1. Juga cuba menggunakan JSON_Table tetapi tidak mendapat nilai json bersarang tepat dalam keadaan where.

P粉366946380
P粉366946380

membalas semua(1)
P粉554842091

Ini:

select json_extract('{
     "data": [
            {"calendarId":"11","userId": "12"},
            {"calendarId":"21","userId": "22"}
           ]
    }','$[0].data[*].userId');

Diberi: [“12”,“22”]

Dan ini:

select * 
from json_table(json_extract('{"data": [{"calendarId":"11","userId": "12"},{"calendarId":"21","userId": "22"}]}',
                '$[0].data[*].userId'), 
                '$[*]' columns (value int path "$")) x
;

Diberi:

Nilai
12
22

Menambah klausa WHERE untuk mencari nilai sahaja 22 tidak sepatutnya menjadi masalah.

Nota: Perkara di atas telah diuji menggunakan MySQL 8.x, lihat: DBFIDDLE

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan