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

MySQL में शर्त के आधार पर केवल कुछ पंक्तियां कैसे हटाएं?

MySQL में DELETE स्टेटमेंट के WHERE क्लॉज का उपयोग करके शर्त के आधार पर केवल विशिष्ट पंक्तियों को हटाया जा सकता है।

सिंटैक्स

DELETE FROM table_name WHERE condition;

उदाहरण

तालिका बनाएं:

mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES (100, 'Bob'), (101, 'Chris'), (102, 'David'), (103, 'Sam'), (104, 'Carol');

हटाने से पहले

+------+-------+
| Id   | Name  |
+------+-------+
|  100 | Bob   |
|  101 | Chris |
|  102 | David |
|  103 | Sam   |
|  104 | Carol |
+------+-------+

क्वेरी: Id > 102 वाली पंक्तियां हटाएं

mysql> DELETE FROM DemoTable WHERE Id > 102;

हटाने के बाद

+------+-------+
| Id   | Name  |
+------+-------+
|  100 | Bob   |
|  101 | Chris |
|  102 | David |
+------+-------+

सुरक्षित पैटर्न

  • पहले SELECT: SELECT * FROM DemoTable WHERE Id > 102;
  • LIMIT जोड़ें: DELETE FROM DemoTable WHERE Id > 102 LIMIT 2;
  • ट्रांजैक्शन: START TRANSACTION; DELETE ...; COMMIT;

सामान्य शर्तें

शर्तउदाहरण
रेंजWHERE Id BETWEEN 100 AND 200
सूचीWHERE Id IN (1, 5, 10)
पैटर्नWHERE Name LIKE 'A%'
NULLWHERE Email IS NULL
दिनांकWHERE CreatedAt < '2020-01-01'

चेतावनी

DELETE FROM table_name (बिना WHERE) सभी डेटा हटा देता है। हमेशा WHERE क्लॉज उपयोग करें और बैकअप रखें।

बड़े डिलीट के लिए

-- बैच में हटाएं (लॉक/लॉग कम करने के लिए)
DELETE FROM DemoTable WHERE Id > 102 LIMIT 1000;
-- दोहराएं जब तक प्रभावित पंक्तियां 0 न हों
  1. - MySQL टेबल पर केवल 3 क्रमबद्ध पंक्तियां कैसे चुनें?

    परिचय MySQL में ORDER BY क्लॉज के साथ LIMIT का उपयोग करके क्रमबद्ध परिणामों में से केवल निर्दिष्ट संख्या में पंक्तियां प्राप्त की जा सकती हैं। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.52 sec) INSERT INTO DemoTable1551(EmployeeName) VALUES(Adam); Query OK, 1 row affected (

  1. - MySQL में महीने के अनुसार कुल राशि (SUM) कैसे प्राप्त करें?

    MySQL में MONTH() और YEAR() फ़ंक्शन के साथ GROUP BY का उपयोग करके महीने के अनुसार राशि का योग निकाला जा सकता है। उदाहरण खरीद तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -> PurchaseDate DATE, -> Amount INT -> ); डेटा डालें: mysql> INSERT INTO DemoTable VALUES ->

  1. - MySQL में NOT IN का उपयोग करके केवल विशिष्ट पंक्तियाँ हटाएं

    MySQL में DELETE स्टेटमेंट के साथ NOT IN ऑपरेटर का उपयोग करके आप उन पंक्तियों को हटा सकते हैं जो दी गई सूची में नहीं हैं। यह विशिष्ट रिकॉर्ड रखते हुए बाकी हटाने के लिए उपयोगी है। टेबल बनाएं और डेटा डालें mysql> CREATE TABLE DemoTable1830 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,