[英]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.