如何从数据库中选择不同的关键字而不指定任何关键字

时间:2015-10-27 19:15:31

标签: distinct keyword

我在数据库列中保存了更多以逗号分隔的关键字 例如:aaaa,bbbb,cccc ....

有很多行:

例如:  第1行= aaaa,bbbb  第2行= aaaa,cccc,ddddd ..  等

我想获得一个包含所有不同关键字的数组(没有重复项)。

提前谢谢!

1 个答案:

答案 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;