如何获取列中所有不同的单词

Red*_*Red 5 mysql

我有一个带有文本列的表格,该列可以包含一个单词、多个单词,由空格或NULL值分隔。我需要获取该列中的所有不同单词(单词非列条目)。

为了获得我使用的所有不同的列条目

SELECT DISTINCT(col_name) AS col_name FROM table_name ORDER BY col_name ASC
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得所有不同的词。

小智 7

SELECT DISTINCT      
  SUBSTRING_INDEX(SUBSTRING_INDEX(table_name.col_name, ' ', numbers.n), ' ', -1) col_name
FROM
  (SELECT 1 n UNION ALL SELECT 2
   UNION ALL SELECT 3 UNION ALL SELECT 4) numbers INNER JOIN table_name
  ON CHAR_LENGTH(table_name.col_name)
     -CHAR_LENGTH(REPLACE(table_name.col_name, ' ', ''))>=numbers.n-1
ORDER BY
  col_name;
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到它:http : //sqlfiddle.com/#!2/b5be5/2/0

参考:https : //stackoverflow.com/questions/17942508/sql-split-values-to-multiple-rows