MySQL-从多个列中选择,并忽略重复的结果

时间:2018-09-02 11:03:13

标签: php mysql

我想运行一个包含4个不同列的SELECT语句,将其命名为col1,col2,col3,col4,并按字母顺序显示所有文本,而忽略任何重复项。

例如,该表包含以下数据。

 col1   |   col2     |   col3    |   col4   
===============================================
animal  |            |           |
create  |   animal   |           |
destroy |            |           |
 giant  |   create   |  animal   |
create  |   destroy  |   belt    |
animal  |   giant    |  animal   |  create  
animal  |            |           |

预期结果应该是:

  • 动物
  • 皮带
  • 创建
  • 破坏
  • 巨人

1 个答案:

答案 0 :(得分:1)

您可以使用UNION

SELECT col1 FROM tab
UNION
SELECT col2 FROM tab
UNION
SELECT col3 FROM tab
UNION
SELECT col4 FROM tab
ORDER BY col1

编辑:

要避免使用NULL和空字符串:

SELECT *
FROM (SELECT col1 FROM tab
    UNION
    SELECT col2 FROM tab
    UNION
    SELECT col3 FROM tab
    UNION
    SELECT col4 FROM tab) sub
WHERE sub.col1 IS NOT NULL AND sub.col1 <> ''
ORDER BY col1;