MySQL - 查询带有列ID的不同列不起作用

3

我在MySQL表中发现了几个重复的行,这些行属于不同的类别。我的表结构如下:

sample_table
-----------------------
id | title | category
-----------------------
1  |item 1 | category 1
2  |item 1 | category 2
3  |item 1 | category 3
4  |item 2 | category 1
5  |item 2 | category 3

我的问题是我想从我的表中获取唯一的标题列以及它们的ID,我尝试了select distinct title from sample_table,它返回2行,但如果我尝试select distinct title, id from sample_table,它会返回所有5行。
现在我的问题是我想要从表格中获取带有它们ID的唯一标题,即2行带有它们ID。
2个回答

1
使用 group by。
select id,title from sample_table group by title

由于id未在group by列表中,因此在MySQL v5.7.5或更高版本中,除非您选择特殊的设置配置,否则此查询将被拒绝。请参见https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html。 - Laurent PELE

1
请使用带有 group by 语句的 select 代替,如下所示:
select title, group_concat(id separator ' ') as ids 
from sample_table 
group by title;

它将返回2行,如下所示:

title ids
item1 1 2 3
item2 4 5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接