Ik moet het ermee eens zijn dat uw eis nogal vreemd lijkt. Hoe dan ook, je query werkt niet, omdat MySQL (en ik wed dat ook alle andere DBMS) eerst de query evalueert om te controleren op syntaxisfouten enzovoort... en op bestaande tabellen.
Of u maakt gewoon meerdere query's in uw toepassingscode of u maakt een opgeslagen procedure om de gegevens te krijgen met behulp van voorbereide instructies. De code hiervoor ziet er ongeveer zo uit:
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 ;
Eenmaal gemaakt, voer je de procedure uit met
CALL get_my_data();