cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menggantikan JSON berbilang nilai tatasusunan bersarang dalam satu pernyataan SELECT

Saya mempunyai medan jadual bernama values yang nilai JSON semasanya adalah seperti berikut:

{"角色": ["1","2","3","4"]}

Saya ada satu lagi jadual bernama roles seperti di bawah

id Nama watak
1 Pentadbir
2 Kewangan
3 Slip gaji
4 Akauntan

Saya cuba menggunakan fungsi JSON_REPLACE untuk menggantikan nombor ID dalam rentetan JSON_REPLACE 函数将 values JSON dengan nama peranan.

Pada asasnya ia sepatutnya mempunyai hasil ini

{"角色": ["管理员","财务","工资","账户"]}

Tetapi saya tidak boleh melakukannya seperti JSON_REPLACE('["1","2","3","4"]', '$[0]', Admin, '$[1]', Finance) 一样使用 JSON_REPLACEkerana bilangan ID dan nama peranan mungkin berbeza, itulah sebabnya saya perlu tahu cara melakukan ini dalam satu kenyataan SELECT.

P粉587780103P粉587780103279 hari yang lalu465

membalas semua(1)saya akan balas

  • P粉340980243

    P粉3409802432024-03-29 09:20:42

    Anda boleh menggunakan json_table:

    select json_object('role', (select json_arrayagg(r1.role_name) 
      from json_table(t.value, '$.roles[*]' columns(role int path '$')) r 
      join roles r1 on r.role = r1.id)) 
    from vals t

    Lihat biola .

    balas
    0
  • Batalbalas