我想要从一个表中获取行数,但只有在该表存在时才获取。(在一个SQL语句中)
来自这个问题的答案如果存在表不会返回该表的行数。如何在没有MySQL抛出“表不存在”的错误的情况下完成这项任务?
我的SQL如下:
SELECT CASE
WHEN
( (SELECT COUNT(*) FROM `information_schema`.`tables` WHERE `table_schema` = DATABASE() AND `table_name` = 'testTbl') > 0 )
THEN
(SELECT COUNT(*) FROM `testTbl`)
ELSE
(SELECT 0)
END;
编辑: WHEN
部分返回正确的值(如果表不存在为0,存在则为1)。
真正的问题在于整个 SQL 语句在表不存在时没有返回或选择“0”,而是返回错误。(因为非现有表格被提及在 THEN
子句中,这样就破坏了之前检查其是否存在的整个目的。换言之,在表不存在时它不能忽略 THEN
子句中的 COUNT
语句。)
这是一个问题,因为我希望返回的值是整数(或数字值)。
get_var()
调用。 - Philip