我想返回single行,但要一个查询限定两个条件。
例如
SELECT * FROM user WHERE admin < 10 OR admin > 100 LIMIT 1
当我查询此内容时,它会返回它发现管理值小于10的第一行吗?如果没有,我将如何实现?
从评论:
我想找到具有admin <10的第一行,但是如果没有具有该值的行,那么我想返回具有admin> 100的第一行。
一个选项使用
union all
和not exists
:
行。(select * from users where admin < 10 limit 1) union all ( select * from users where admin > 100 and not exists (select 1 from users where admin < 10) limit 1 )
请注意,如果要向其添加
order by
子句,则查询更有意义。在不使用limit
的情况下使用order by
会导致从满足谓词的行中返回abritrary