我有一个包含3列的表。
id | name | score | approve
--------------------
1 | foo | 90 | f
2 | foo | 80 | t
我想
SELECT id WHERE name='foo'
在以下情况下:
如果approve
为True,则返回一个(对于同一个名称,只有一个为true)
否则选择得分最高的那个
我一直在寻找IF
... ELSE
,但甚至无法提出执行查询(尽管有一个有效的查询...)
如何为这种类型的查询设置查询命令?
答案 0 :(得分:1)
在SQL中,通常可以通过定义正确的顺序和限制来使用某些逻辑:
select id
from my_table
where name = 'foo'
order by approve desc, score desc
limit 1