我相信以下查询是不言自明的:
SELECT IF (SELECT COUNT(*) FROM mytable > 0, 'yes', 'no');
为什么它不起作用?我应该如何纠正它?
我相信以下查询是不言自明的:
SELECT IF (SELECT COUNT(*) FROM mytable > 0, 'yes', 'no');
为什么它不起作用?我应该如何纠正它?
将子查询括在括号中:
SELECT IF ((SELECT COUNT(*) FROM mytable), 'yes', 'no');
这是你想要的吗?
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
如果您的查询更复杂并且这只是一个简化的问题,我认为这对您来说是更好的解决方案
SELECT IF ( (SELECT COUNT(*) AS counter FROM myTable HAVING counter>0) , 'yes', 'no')
所以你可以做更复杂的检查(即计数器> N或多个条件)
试试这个:
SELECT IF((SELECT COUNT(*) FROM mytable) > 0, 'yes', 'no');