MySQL में NOT IN ऑपरेटर के साथ विशिष्ट रिकॉर्ड को संरक्षित करते हुए शेष हटाना
NOT IN ऑपरेटर का उपयोग करके आप उन रिकॉर्ड्स को हटा सकते हैं जो निर्दिष्ट मानों की सूची में नहीं हैं।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
FirstName VARCHAR(100)
);
रिकॉर्ड डालना
mysql> INSERT INTO DemoTable VALUES('Chris');
mysql> INSERT INTO DemoTable VALUES('Robert');
mysql> INSERT INTO DemoTable VALUES('Mike');
mysql> INSERT INTO DemoTable VALUES('Sam');
mysql> INSERT INTO DemoTable VALUES('David');
डिलीट करने से पहले डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+ | FirstName | +-----------+ | Chris | | Robert | | Mike | | Sam | | David | +-----------+
Robert और Mike को छोड़कर बाकी डिलीट करना
mysql> DELETE FROM DemoTable
WHERE FirstName NOT IN('Robert', 'Mike');
आउटपुट: Query OK, 3 rows affected
डिलीट करने के बाद डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+ | FirstName | +-----------+ | Robert | | Mike | +-----------+
महत्वपूर्ण विचार
NOT INमें NULL मान होने पर अप्रत्याशित परिणाम दे सकता है- बड़े डेटासेट के लिए
NOT EXISTSबेहतर प्रदर्शन दे सकता है - हमेशा DELETE से पहले SELECT के साथ परीक्षण करें
- लेनदेन (TRANSACTION) का उपयोग करके सुरक्षित रूप से डिलीट करें
वैकल्पिक दृष्टिकोण