Трябва да се съглася, че вашето изискване изглежда доста странно. Както и да е, вашата заявка не работи, защото MySQL (и се обзалагам, че всички други СУБД също) първо оценява заявката, за да провери за синтактични грешки и така нататък...и за съществуващи таблици.
Или просто правите тези множество заявки в кода на приложението си, или създавате съхранена процедура, за да получите данните, като използвате подготвени изрази. Кодът за това ще изглежда така:
DELIMITER $$
CREATE PROCEDURE get_my_data()
BEGIN
SET @table_name = '';
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE SCHEMA_NAME = 'your_db_name'
AND TABLE_NAME = 'your_table_name')
THEN SET @table_name = 'tableA';
ELSE SET @table_name = 'tableB';
END IF;
SET @sql = CONCAT('SELECT COUNT(*) FROM ', @table_name, ';');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END $$
DELIMITER ;
Веднъж създаден, ще изпълните процедурата с
CALL get_my_data();