【问题标题】:Mysql comma seperated to json-arrayMysql逗号分隔为json-array
【发布时间】:2021-02-16 05:55:29
【问题描述】:

我在数据库中有一些以逗号分隔的字段,例如:a,b,c,d,e

我想把它们转换成:

["a","b","c","d","e"]

我知道如何在 nodejs / 任何其他语言中执行此操作,但我需要直接在 mysql 上执行此操作
可能的? 谢谢

【问题讨论】:

  • 您成为classic blunders 之一的受害者——其中最著名的是“永远不要卷入亚洲的陆战”——但鲜为人知的是:“永远不要把表格列中的 csv 值!”

标签: mysql sql arrays json string


【解决方案1】:

最简单的方法可能是只使用字符串函数:

select concat('["', replace(col, ',', '","'), '"]') js from mytable

基本上这会将字符串 'a,b,c,d,e' 转换为 '["a","b","c","d","e"]' - 如果您在其上使用 JSON 函数,MySQL 会很乐意将其理解为 JSON。

请注意,这仅适用于您的 CSV 元素不包含嵌入双引号的情况。

【讨论】:

  • 这仅适用于您的 CSV 元素不包含嵌入的双引号在这种情况下,嵌套替换会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 2010-10-14
  • 2012-04-11
  • 2020-07-01
  • 1970-01-01
  • 2023-02-03
相关资源
最近更新 更多