我在数据库列中保存了更多以逗号分隔的关键字 例如:aaaa,bbbb,cccc ....
有很多行:
例如: 第1行= aaaa,bbbb 第2行= aaaa,cccc,ddddd .. 等
我想获得一个包含所有不同关键字的数组(没有重复项)。
提前谢谢!
答案 0 :(得分:0)
创建表格
CREATE TABLE tablename (
id INT,
name VARCHAR(20));
INSERT INTO tablename VALUES
(1, 'aaaa,bbbb'),
(2, 'aaaa,cccc,dddd');
CREATE TABLE numbers (
n INT PRIMARY KEY);
INSERT INTO numbers VALUES (1),(2),(3),(4),(5),(6);
消防查询:
SELECT group_concat(name) as result
FROM
(
SELECT distinct name
FROM
(
SELECT
tablename.id,
SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
FROM
numbers INNER JOIN tablename
ON CHAR_LENGTH(tablename.name)
-CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
ORDER BY
id, n
) tab1
) tab2;