如果第一个查询没有返回结果,我想执行第二个查询。我想得到那些ID年龄> 20。如果没有结果,则希望获取年龄< 20的id的数量。
表中:
id name gender age
1 'Ryan' 'M' 30
2 'Joanna' 'F' 10
查询
(SELECT id FROM students WHERE age > 20
ORDER BY id desc limit 1)
UNION ALL
SELECT count(id) FROM students WHERE age < 20 AND
NOT EXISTS (SELECT * FROM students WHERE age > 20 ORDER BY id desc limit 1)
结果:
id
1
0
它应该只返回1,但返回1和0。
如果将ryan age改为10,则返回2,这是正确的。
友情链接:query
1条答案
按热度按时间amrnrhlw1#
给你正如您在案例1中所要求的:ID年龄> 20限制1和情况2:年龄< 20的计数仅当没有来自案例1的结果集时。
这应该可以!!!
结果1:插入年龄> 20的语句和年龄< 20的语句
结果2所有年龄< 20岁的插入物