I need to run a count query on a table but only if that table exists,
SELECT
CASE WHEN (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA =
You can try this :
SET @val := CASE (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'DATABASENAME' AND TABLE_NAME = 'testtable')
WHEN 0 THEN 0
ELSE (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'DATABASENAME' AND TABLE_NAME = 'testtable')
END;
SELECT @val;
It will return 0, if there is no such table and if such table exists , it will return the count, it may be better if you take it into function.