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