使DISTINCT按照某些标准在重复之间进行选择

时间:2014-05-23 11:11:43

标签: mysql sql

我有:表格如下:

my_table
 |- id BIGINT(20)
 |- name VARCHAR(100) // there are a lot of DUPLICATES
 |- prefered TINYINT(1) 
 |- dependency_id INT(11)e

我需要:为id等于@id的依赖项选择所有distict名称:

SELECT DISTINCT(name) FROM my_table WHERE dependency_id = @id

问题:如果至少有两个重复项,我应该选择一个prefered字段等于1。

问题: 如何让DISTINCT选择prefered = 1的行?

1 个答案:

答案 0 :(得分:1)

如果您只想选择一个优先级为preferred的名称,请执行以下操作:

SELECT name
FROM my_table
WHERE dependency_id = @id
ORDER BY preferred desc
LIMIT 1;