我有这样的表
-------------------------------------------------------------------
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
答案 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