Tulis semula tajuk sebagai: Gabungkan tatasusunan JSON ke rentetan dalam MySQL
P粉935883292
P粉935883292 2023-09-06 14:59:38
0
1
691

Saya sedang mencari cara untuk menggabungkan tatasusunan JSON ke dalam rentetan terhad dalam MySQL.

Berikut ialah contoh menggunakan fungsi REPLACE() bersarang untuk menggantikan aksara dalam rentetan.

SELECT REPLACE(REPLACE(REPLACE(JSON_KEYS('{
  "foo": "I am foo",
  "bar": "I am bar",
  "baz": "I am baz"
}'), '["', ''), '", "', '|'), '"]', '') AS value;

Kembalikan hasil...

bar|baz|foo

Adakah terdapat cara asli untuk melakukan ini tanpa perlu melakukan beberapa perkara yang meretas seperti ini?

P粉935883292
P粉935883292

membalas semua(1)
P粉952365143

Anda meminta penukaran JSON kepada CSV menggunakan kunci dan bukannya nilai. "Masalah" sebenar ialah menggunakan kekunci, tetapi ini boleh dicapai dengan cara yang lebih bersih. Saya tidak fikir cara ini lebih bersih, tetapi anda mungkin mendapati ia lebih elegan. Hanya untuk lebih pasti: Tidak, tidak ada cara asli dalam MySQL yang melakukan apa yang anda perlukan.

SELECT 
    GROUP_CONCAT(json_source.a_key SEPARATOR '|') 
FROM JSON_TABLE(
    JSON_KEYS('{
        "foo": "I am foo",
        "bar": "I am bar",
        "baz": "I am baz"
        }'), 
    "$[*]" COLUMNS(a_key TEXT PATH '$')
  ) AS json_source;

JSON_TABLE 是一个强大的工具,但需要阅读和大量的交流才能理解。我自己还在交流阶段。GROUP_CONCAT berfungsi seperti yang anda jangkakan, tetapi secara menegak.

Sunting: Anda juga boleh merujuk kepada Soalan serupa ini.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!