MySQL SELECT DISTINCT多列

假设我在MySQL数据库的表中有列a, bc, d 。 我想要做的是在我的表中select这4列的唯一值(只有不同​​的值)。 我尝试了这样的东西:

 SELECT DISTINCT a,b,c,d FROM my_table; SELECT DISTINCT a,b,c,d FROM my_table GROUP BY a,b,c,d; 

没有一个工作。 有人可以帮忙吗?

谢谢

注意我想分开列a, b, cd的不同值。 不是价值的独特组合

这可以帮助吗?

 select (SELECT group_concat(DISTINCT a) FROM my_table) as a, (SELECT group_concat(DISTINCT b) FROM my_table) as b, (SELECT group_concat(DISTINCT c) FROM my_table) as c, (SELECT group_concat(DISTINCT d) FROM my_table) as d 

无论如何,我知道这个问题太老了:

 select a, b from mytable group by a, b 

会给你所有的组合。

猜测你想要的结果,所以也许这就是你想要的查询

 SELECT DISTINCT a FROM my_table UNION SELECT DISTINCT b FROM my_table UNION SELECT DISTINCT c FROM my_table UNION SELECT DISTINCT d FROM my_table 

另一个简单的方法是使用concat()

 SELECT DISTINCT(CONCAT(a,b)) AS cc FROM my_table GROUP BY (cc); 

你的问题都是正确的,应该给你正确的答案。

我会build议以下查询来解决您的问题。

 SELECT DISTINCT a,b,c,d,count(*) Count FROM my_table GROUP BY a,b,c,d order by count(*) desc 

这是添加计数(*)字段。 这会让你知道使用组命令排除了多less行。

这将会在所有列中产生DISTINCT值:

 SELECT DISTINCT value FROM ( SELECT DISTINCT a AS value FROM my_table UNION SELECT DISTINCT b AS value FROM my_table UNION SELECT DISTINCT c AS value FROM my_table ) AS derived