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

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

Berikut ialah contoh menggunakan fungsiREPLACE()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_CONCATberfungsi seperti yang anda jangkakan, tetapi secara menegak.

Sunting: Anda juga boleh merujuk kepadaSoalan serupaini.

    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!