我想在MySQL查询中使用if语句来SELECT数据库中的所有信息,如果...返回true,或者返回名为​​COUNT的列的aid

伪代码:

IF (COUNT(`AID`) > 0) {
  SELECT * FROM `a_votes` WHERE `aid` = '1'
} ELSE {
  RETURN 'No Rows'
}


请您告诉我我该怎么做?

编辑 - -

我尝试了以下查询,但收到错误Operand should contain 1 column(s)

SELECT IF( (

SELECT COUNT( aid ) AS  `count`
FROM  `a_votes`
WHERE  `aid` =1 ) =0,  'true', (

    SELECT *
    FROM  `a_votes`
    WHERE  `aid` =1
  )

) AS message

最佳答案

SELECT * FROM (
    SELECT COUNT(*) as COUNT FROM a_votes WHERE aid = '1'
) x WHERE COUNT > 0;


如果没有行匹配,则简单的COUNT(*))将返回单行,其中0作为计数。在消除该条件的外部查询中包装通常的COUNT(*)查询将不返回任何行。

编辑:

感谢@bisiclop,这是一个更好的解决方案:

SELECT COUNT(*) as COUNT
FROM a_votes
WHERE aid = '1'
HAVING COUNT(*) > 0;

关于mysql - MySQL中的if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11066158/

10-11 22:38
查看更多