use*_*368 69 mysql sql distinct
假设我a, b c, d在MySQL数据库的表中有列.我要做的是在我的表中选择所有这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;
Run Code Online (Sandbox Code Playgroud)
这些都没有奏效.有人可以帮忙吗?
谢谢
注意我想分别列的不同值a, b, c d.不是值的独特组合
nca*_*tro 62
无论如何,我知道这个问题太旧了:
select a, b from mytable group by a, b
Run Code Online (Sandbox Code Playgroud)
将给你所有的组合.
Nes*_*zon 46
这可以帮忙吗?
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
Run Code Online (Sandbox Code Playgroud)
Adr*_*ish 19
猜测你想要的结果,也许这就是你想要的查询
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
Run Code Online (Sandbox Code Playgroud)
小智 15
另一种简单的方法是使用 concat()
SELECT DISTINCT(CONCAT(a,b)) AS cc FROM my_table GROUP BY (cc);
Run Code Online (Sandbox Code Playgroud)
您的查询都是正确的,应该给您正确的答案.
我会建议以下查询来解决您的问题.
SELECT DISTINCT a,b,c,d,count(*) Count FROM my_table GROUP BY a,b,c,d
order by count(*) desc
Run Code Online (Sandbox Code Playgroud)
那就是添加计数(*)字段.这将使您可以了解使用group命令消除了多少行.
这将为所有列提供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
Run Code Online (Sandbox Code Playgroud)