Jeg må være enig i, at dit krav virker ret underligt. Under alle omstændigheder virker din forespørgsel ikke, fordi MySQL (og jeg vil vædde på alle andre DBMS også) evaluerer først forespørgslen for at tjekke for syntaksfejl og så videre...og for eksisterende tabeller.
Enten laver du bare disse flere forespørgsler i din ansøgningskode, eller også opretter du en lagret procedure for at få dataene ved hjælp af forberedte udsagn. Koden til dette ville se nogenlunde sådan ud:
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 ;
Når du først er oprettet, vil du derefter udføre proceduren med
CALL get_my_data();