Je cherche un moyen de concaténer des tableaux JSON en chaînes délimitées dans MySQL.
Vous trouverez ci-dessous un exemple utilisant des fonctionsREPLACE()
imbriquées pour remplacer des caractères dans une chaîne.
SELECT REPLACE(REPLACE(REPLACE(JSON_KEYS('{ "foo": "I am foo", "bar": "I am bar", "baz": "I am baz" }'), '["', ''), '", "', '|'), '"]', '') AS value;
Retour des résultats...
bar|baz|foo
Existe-t-il une manière native de procéder sans avoir à faire des trucs piratés comme celui-ci ?
Vous demandez une conversion JSON en CSV en utilisant des clés au lieu de valeurs. Le vrai « problème » est l’utilisation des clés, mais cela peut être réalisé de manière plus propre. Je ne pense pas que cette méthode soit plus propre, mais vous la trouverez peut-être plus élégante. Juste pour être plus sûr : non, il n'existe aucun moyen natif dans MySQL qui fasse ce dont vous avez besoin.
JSON_TABLE
是一个强大的工具,但需要阅读和大量的交流才能理解。我自己还在交流阶段。GROUP_CONCAT
fonctionne de la même manière que vous vous attendez, mais verticalement.Edit : Vous pouvez également vous référer à cetteQuestion similaire.