मुझे सहमत होना चाहिए कि आपकी आवश्यकता काफी अजीब लगती है। वैसे भी, आपकी क्वेरी काम नहीं करती है, क्योंकि 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();