繁体   English   中英

选择Distinct value SQL

[英]Select Distinct value SQL

我有这样的表

-------------------------------------------------------------------
id | title | image  | name |
-------------------------------------------------------------------
1  | xyzab | so.jpg | googl |
2  | acbde | am.jpg | artic |
3  | xyzab | pp.jpg | other |

我想用它的图像和名称选择唯一或不同的标题。 不想重复这些值。 我用这个代码

SELECT DISTINCT title,image,name,id FROM `some_table`

但这不行

注意 :OP正在使用MySQL

使用DISTINCT将确保没有2条记录的所有列都匹配,因此这正常的。

如果要返回唯一标题,则需要确定要返回的图像和名称。

您可以使用具有聚合函数的group by来执行此操作。 例如:

SELECT title, MIN(image), MIN(name), MIN(id)
FROM `some_table`
GROUP BY title

但这取决于你追求的结果......

你需要指定WINNER ...换句话说,如果有一个重复的标题,但在其他列中你需要选择一个不同的数据......

例如,你可以试试这个。

select * from 'some_table' where id in (select min(id) from 'some_table' group by title)

DISTINCT不应用于关键字后面的一个字段,而是应用于select语句中的字段。 您正在寻找的是GROUP BY

SELECT title,image,name,id FROM some_table GROUP BY title

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM