Bagaimana untuk menggantikan JSON berbilang nilai tatasusunan bersarang dalam satu pernyataan SELECT
P粉587780103
P粉587780103 2024-03-28 10:16:41
0
1
461

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粉587780103
P粉587780103

membalas semua(1)
P粉340980243

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 .

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