mysql if function - 子查询作为条件

时间:2012-12-12 12:48:49

标签: mysql subquery conditional

我相信以下查询是不言自明的:

SELECT IF (SELECT COUNT(*) FROM mytable > 0, 'yes', 'no');

为什么不起作用?我该如何纠正呢?

4 个答案:

答案 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');