选择Distinct value SQL

时间:2011-11-02 11:28:42

标签: mysql sql select distinct

我有这样的表

-------------------------------------------------------------------
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

3 个答案:

答案 0 :(得分:5)

使用DISTINCT可确保没有2条记录所有列匹配,因此 正常工作。

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

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

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

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

答案 1 :(得分:0)

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

例如你可以试试这个。

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

答案 2 :(得分:0)

DISTINCT不会应用于关键字后面的一个字段,而是应用于select语句中的字段。你要找的是GROUP BY

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