Saya harus setuju bahwa persyaratan Anda tampaknya cukup aneh. Bagaimanapun, kueri Anda tidak berfungsi, karena MySQL (dan saya yakin semua DBMS lainnya juga) pertama-tama mengevaluasi kueri untuk memeriksa kesalahan sintaks dan seterusnya...dan untuk tabel yang ada.
Entah Anda hanya membuat beberapa kueri ini dalam kode aplikasi Anda atau Anda membuat prosedur tersimpan untuk mendapatkan data menggunakan pernyataan yang disiapkan. Kode untuk ini akan terlihat seperti ini:
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 ;
Setelah dibuat, Anda kemudian akan menjalankan prosedur dengan
CALL get_my_data();