我有一个喜欢这个的sql表: 1 [sql table image] 1
我目前正在使用以下查询来获取单个逗号分隔值:
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(name, ',', numbers.n), ',', -1) name
FROM
(SELECT 1 n UNION ALL SELECT 2
UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) numbers INNER JOIN mytable
ON CHAR_LENGTH(name)
-CHAR_LENGTH(REPLACE(name, ',', ''))>=numbers.n-1 where SUBSTRING_INDEX(SUBSTRING_INDEX(name, ',', numbers.n), ',', -1) = 'm';
我想知道是否有更好的方法可以做到这一点,因为它对大量的逗号分隔值不起作用,因为我正在使用SELECT 1 n UNION ALL SELECT 2
等等以获得多个逗号分隔值< / p>
答案 0 :(得分:0)
是的,还有更好的方法。将表和数据转换为3NF表格布局。这样,为数据库编写查询就容易得多。