我有一个旧的数据库,其中某些列以逗号分隔的字符串存储如下: technician,director,website designer
我想将它们转换为JSON数组,因此可以使用MySQL JSON数组类型和与其关联的方法。
所以基本上我正在寻找一种转换technician,director,website designer
为["technician","director","website designer"]
SQL的方法。
列表的长度是任意的。我最大的困难是如何在用逗号分隔的字符串中的每个元素上应用SQL函数(例如,我可以JSON_QUOTE()
在每个元素上运行),因为添加方括号很简单CONCAT
。
该解决方案应适用于MySQL 5.7。
您可以REPLACE
用来获取期望的字符串:
SELECT CONCAT('["', REPLACE('technician,director,website designer', ',', '","'), '"]')
-- ["technician","director","website designer"]
使用,JSON_VALID
您可以检查转换结果是否为有效的JSON值:
SELECT JSON_VALID(CONCAT('["', REPLACE('technician,director,website designer', ',', '","'), '"]'))
-- 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句