我有:表格如下:
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
的行?
答案 0 :(得分:1)
如果您只想选择一个优先级为preferred
的名称,请执行以下操作:
SELECT name
FROM my_table
WHERE dependency_id = @id
ORDER BY preferred desc
LIMIT 1;