Ich suche nach einer Möglichkeit, JSON-Arrays in MySQL zu durch Trennzeichen getrennten Zeichenfolgen zu verketten.
Hier ist ein Beispiel für die Verwendung verschachtelterREPLACE()
-Funktionen zum Ersetzen von Zeichen in einer Zeichenfolge.
SELECT REPLACE(REPLACE(REPLACE(JSON_KEYS('{ "foo": "I am foo", "bar": "I am bar", "baz": "I am baz" }'), '["', ''), '", "', '|'), '"]', '') AS value;
Ergebnisse zurückgeben...
bar|baz|foo
Gibt es eine native Möglichkeit, dies zu tun, ohne solche Hacks machen zu müssen?
您正在要求使用键而不是值进行JSON到CSV转换。真正的“问题”是使用键,但可以以更简洁的方式实现。我不认为这种方式比较简洁,但您可能会觉得更优雅。为了确保额外的确定:不,MySQL中没有任何原生的方法可以满足您的需求。
JSON_TABLE
是一个强大的工具,但需要阅读和大量的交流才能理解。我自己还在交流阶段。GROUP_CONCAT
的工作方式与您预期的一样,但是垂直方向。编辑:还可以参考这个类似问题。