【发布时间】:2021-01-19 11:47:27
【问题描述】:
从 table1 和 column1 中获取不同值的列表就像这样做一样简单:
SELECT distinct(column1)
FROM table1
但是,我继承了(不幸的是)一个数据库,其中 column1 包含用逗号分隔的值
column1
--------
row 1: name1,name2
row 2: name2,name3
row 3: name4,name1,name3
我需要从 column1 中获取不同值的列表,所以它看起来像这样:
column1
--------
name1
name2
name3
name4
有什么想法吗?
【问题讨论】:
-
请阅读stackoverflow.com/questions/3653462/…mysql自然不能这样做你必须使用函数或存储过程
-
并注意 DISTINCT 不是函数
-
请阅读有关数据库规范化的信息。并且请尽可能避免在列中使用逗号分隔的值。他们系统地破坏了 SQL 查询优化。
-
请不要再谈论数据库规范化了,我无法解决其他人创建的问题...另外,有人已经针对这个问题发布了一个非常优雅的解决方案
标签: mysql sql string csv recursive-query