MySQL如果没有数据,则返回错误

时间:2016-08-30 22:02:41

标签: mysql qa

如果有桌子,"测试"。我们怎样才能回归"没有数据"如果表只有标题但没有其他行?

IF (SELECT 1 FROM test) < 1 THEN (SELECT ' No data');

END IF;

以下代码不断返回&#34; SQL ERROR(1064):SQL查询中存在语法错误&#34;。但是,我完全按照手册中的语法进行操作:

https://dev.mysql.com/doc/refman/5.7/en/if.html

任何一位大师能开导吗?感谢。

1 个答案:

答案 0 :(得分:0)

我认为检查表是否有记录的最佳方法是执行返回&#39; 0&#39;当没有找到记录时,&#39; n&#39;当找到记录时,正在发现记录。表上存在的记录数量......您可以这样做:

SELECT COUNT(1) AS TOTAL_ROWS FROM test;

...保存在名为TOTAL_ROWS

的列上的结果

但是,关于您的请求,可以通过以下查询获得该结果:

SELECT IF(TOTAL_ROWS = 0, 'No data', 'There\'s data on \'test\' table') AS `EXISTS DATA?` 
FROM (
   SELECT COUNT(1) AS TOTAL_ROWS FROM test
)t
;

如您所见,结果是通过几个嵌套查询获得的:

  • 内部查询SELECT COUNT(1) AS TOTAL_ROWS FROM test计算test TABLE上现有记录的总数,并将结果保存在TOTAL_ROWS
  • 外部查询会检查TOTAL_ROWS上保存的值,并根据结果显示所需的标签。