我相信以下查询是不言自明的:
SELECT IF (SELECT COUNT(*) FROM mytable > 0, 'yes', 'no');
为什么不起作用?我该如何纠正呢?
答案 0 :(得分:16)
将子查询括在括号中:
SELECT IF ((SELECT COUNT(*) FROM mytable), 'yes', 'no');
答案 1 :(得分:3)
这就是你想要的吗?
SELECT IF(COUNT(*) > 0, 'yes', 'no') FROM mytable;
1:
SELECT
t1.*,
(SELECT IF(COUNT(*) > 0, 'yes', 'no') FROM mytable) AS col1
FROM
table t1;
2:
SELECT
t1.*,
t2.*
FROM
table t1,
(SELECT IF(COUNT(*) > 0, 'yes', 'no') AS col1 FROM mytable) t2
答案 2 :(得分:2)
如果您的查询更复杂,这只是一个减少的问题,我认为这是更好的解决方案
SELECT IF ( (SELECT COUNT(*) AS counter FROM myTable HAVING counter>0) , 'yes', 'no')
所以你可以做更复杂的检查(即计数器> N或多个条件)
答案 3 :(得分:0)
试试这个:
SELECT IF((SELECT COUNT(*) FROM mytable) > 0, 'yes', 'no');