Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में WHERE क्लॉज में AND का उपयोग करके एकाधिक शर्तों पर DELETE करना

MySQL में एक से अधिक शर्तों (कॉलम = मान) के आधार पर पंक्तियाँ हटाने के लिए DELETE स्टेटमेंट में WHERE क्लॉज के साथ AND ऑपरेटर का उपयोग करें।

सिंटैक्स

DELETE FROM table_name WHERE column1 = value1 AND column2 = value2;

व्यावहारिक उदाहरण

1. टेबल बनाएं और डेटा डालें

mysql> CREATE TABLE DemoTable722 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(100),
    StudentAge INT
);
Query OK, 0 rows affected (1.84 sec)

mysql> INSERT INTO DemoTable722 (StudentName, StudentAge) VALUES 
('Chris Brown', 23),
('John Smith', 21),
('David Miller', 22),
('Adam Smith', 20),
('Carol Taylor', 24);
Query OK, 5 rows affected (0.25 sec)

2. सभी रिकॉर्ड्स देखें

mysql> SELECT * FROM DemoTable722;
+-----------+--------------+------------+
| StudentId | StudentName  | StudentAge |
+-----------+--------------+------------+
| 1         | Chris Brown  | 23         |
| 2         | John Smith   | 21         |
| 3         | David Miller | 22         |
| 4         | Adam Smith   | 20         |
| 5         | Carol Taylor | 24         |
+-----------+------------+------------+
5 rows in set (0.00 sec)

3. दो शर्तों के साथ DELETE

mysql> DELETE FROM DemoTable722 
WHERE StudentId = 3 AND StudentName = 'David Miller';
Query OK, 1 row affected (0.21 sec)

4. परिणाम जांचें

mysql> SELECT * FROM DemoTable722;
+-----------+--------------+------------+
| StudentId | StudentName  | StudentAge |
+-----------+--------------+------------+
| 1         | Chris Brown  | 23         |
| 2         | John Smith   | 21         |
| 4         | Adam Smith   | 20         |
| 5         | Carol Taylor | 24         |
+-----------+--------------+------------+
4 rows in set (0.00 sec)

महत्वपूर्ण सुरक्षा अभ्यास

हमेशा WHERE क्लॉज का उपयोग करें

-- खतरनाक: सभी पंक्तियाँ हटा देगा!
DELETE FROM DemoTable722;

-- सुरक्षित: विशिष्ट शर्तों के साथ
DELETE FROM DemoTable722 WHERE StudentId = 3;

पहले SELECT से सत्यापित करें

SELECT * FROM DemoTable722 WHERE StudentId = 3 AND StudentName = 'David Miller';
-- यदि सही पंक्ति लौटती है, तो DELETE चलाएं

एकाधिक शर्तों के पैटर्न

आवश्यकताWHERE क्लॉज
सभी शर्तें पूरी हों (AND)WHERE col1 = 1 AND col2 = 'A' AND col3 > 100
कोई एक शर्त पूरी हो (OR)WHERE col1 = 1 OR col2 = 'A'
मिश्रित (परेंथीसिस के साथ)WHERE (col1 = 1 OR col1 = 2) AND col2 = 'A'
सूची में मानWHERE col1 IN (1,2,3) AND col2 = 'A'
रेंजWHERE col1 BETWEEN 10 AND 20 AND col2 = 'A'

बड़े डिलीट के लिए चंकिंग

-- लाखों पंक्तियाँ हटाने के लिए बैच में
DELETE FROM large_table 
WHERE created_at < '2020-01-01' 
LIMIT 10000;
-- दोहराएं जब तक 0 पंक्तियाँ प्रभावित न हों
  1. - MySQL में DELETE LIMIT 1 से डुप्लिकेट में से एक रिकॉर्ड हटाएं

    डुप्लिकेट रिकॉर्ड वाली टेबल से केवल एक रिकॉर्ड हटाने के लिए DELETE ... LIMIT 1 का उपयोग करें। सिंटैक्स DELETE FROM टेबल_नाम WHERE कॉलम_नाम = मान LIMIT 1; उदाहरण 1. टेबल बनाएं CREATE TABLE DemoTable (Amount INT); 2. डेटा डालें (50 तीन बार) INSERT INTO DemoTable VALUES(50), (100), (50), (70), (9

  1. - MySQL में AND ऑपरेटर का उपयोग करके विशिष्ट रिकॉर्ड कैसे हटाएं?

    MySQL में DELETE स्टेटमेंट के WHERE क्लॉज में AND ऑपरेटर का उपयोग करके एकाधिक शर्तों के आधार पर विशिष्ट पंक्तियों को हटाया जा सकता है। सिंटैक्स DELETE FROM table_name WHERE condition1 AND condition2 AND ...; उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(

  1. - MySQL में NOT IN से मान न होने वाली पंक्तियां चुनें

    NOT IN ऑपरेटर से विशिष्ट मानों को बाहर रखें कुछ मानों को छोड़कर बाकी पंक्तियां प्राप्त करने के लिए NOT IN() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1991 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20) ); Query OK, 0 rows affected (0.61 se