Réécrivez le titre comme suit : Concaténer un tableau JSON en chaîne dans MySQL
P粉935883292
P粉935883292 2023-09-06 14:59:38
0
1
725

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 fonctions REPLACE() 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 ?

P粉935883292
P粉935883292

répondre à tous(1)
P粉952365143

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.

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 fonctionne de la même manière que vous vous attendez, mais verticalement.

Edit : Vous pouvez également vous référer à cette Question similaire.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal