Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL DELETE FROM सबक्वेरी के साथ कंडीशन के रूप में

अन्य लोगों के लिए जो सबक्वेरी का उपयोग करते समय इस प्रश्न को हटाना चाहते हैं, मैं आपको MySQL को आउटस्मार्ट करने के लिए यह उदाहरण छोड़ता हूं (भले ही कुछ लोगों को लगता है कि यह नहीं किया जा सकता है):

DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
             FROM tableE
             WHERE arg = 1 AND foo = 'bar');

आपको एक त्रुटि देगा:

ERROR 1093 (HY000): You can't specify target table 'e' for update in FROM clause

हालांकि यह प्रश्न:

DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
             FROM (SELECT id
                   FROM tableE
                   WHERE arg = 1 AND foo = 'bar') x);

ठीक काम करेगा:

Query OK, 1 row affected (3.91 sec)

अपनी सबक्वेरी को एक अतिरिक्त सबक्वेरी (यहां x नाम दिया गया है) में लपेटें और MySQL खुशी-खुशी वह करेगा जो आप पूछते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑपरेंड में 1 कॉलम होना चाहिए - MySQL NOT IN

  2. मैं LIKE वाइल्डकार्ड का उपयोग करके कॉलम में (केस-असंवेदनशील) कैसे खोज सकता हूं?

  3. कैसे पता चलेगा कि MySQLnd सक्रिय ड्राइवर है?

  4. XAMPP इंस्टालेशन में MySQL InnoDB स्टोरेज इंजन सपोर्ट सक्षम करें

  5. मैं अजगर mysql क्वेरी से% कैसे बच सकता हूं?