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

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

MySQL में DELETE स्टेटमेंट के साथ NOT IN ऑपरेटर का उपयोग करके आप उन पंक्तियों को हटा सकते हैं जो दी गई सूची में नहीं हैं। यह विशिष्ट रिकॉर्ड रखते हुए बाकी हटाने के लिए उपयोगी है।

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

mysql> CREATE TABLE DemoTable1830 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20)
) AUTO_INCREMENT=101;

mysql> INSERT INTO DemoTable1830(StudentName) VALUES('Chris');
mysql> INSERT INTO DemoTable1830(StudentName) VALUES('David');
mysql> INSERT INTO DemoTable1830(StudentName) VALUES('Mike');
mysql> INSERT INTO DemoTable1830(StudentName) VALUES('Sam');
mysql> INSERT INTO DemoTable1830(StudentName) VALUES('Bob');

वर्तमान डेटा

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|       101 | Chris       |
|       102 | David       |
|       103 | Mike        |
|       104 | Sam         |
|       105 | Bob         |
+-----------+-------------+

विशिष्ट आईडी को छोड़कर बाकी हटाएं

केवल 101, 103, 105 रखें:

mysql> DELETE FROM DemoTable1830
    WHERE StudentId NOT IN(101, 103, 105);

Query OK, 2 rows affected (0.00 sec)

परिणाम

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|       101 | Chris       |
|       103 | Mike        |
|       105 | Bob         |
+-----------+-------------+

सावधानियां

  • NOT IN सूची में NULL होने पर कोई पंक्ति नहीं हटेगी (क्योंकि NULL तुलना अज्ञात देती है)।
  • पहले SELECT से जांच लें: SELECT * FROM table WHERE id NOT IN(...)
  • बड़े डेटासेट पर NOT IN धीमा हो सकता है; NOT EXISTS या LEFT JOIN ... IS NULL बेहतर हो सकते हैं।
  1. Java MySQL का उपयोग करके MySQL टेबल अपडेट करें Java MySQL का उपयोग करके MySQL टेबल अपडेट करें

    JDBC में PreparedStatement का उपयोग करके पैरामीटरीकृत अपडेट को सुरक्षित रूप से निष्पादित करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable(Id INT, FirstName VARCHAR(40)); Query OK, 0 rows affected (0.62 sec) INSERT INTO DemoTable VALUES(100,Chris),(111,Mike),(121,Sam); अपडेट से पहले SELECT

  1. - MySQL में DISTINCT से डुप्लिकेट पंक्तियों में से एक पंक्ति दिखाएं

    DISTINCT कीवर्ड से अद्वितीय पंक्तियां प्राप्त करें पूरी पंक्ति के डुप्लिकेट को हटाकर केवल अद्वितीय पंक्तियां प्राप्त करने के लिए SELECT DISTINCT * का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1998 ( Name varchar(20) ); Query OK, 0 rows affected (0.61 sec) mysql> insert

  1. - MySQL में टेबल बदलें ताकि परिकलित औसत स्कोर फ़ील्ड INSERT/UPDATE के बिना दिखे

    समाधान GENERATED ALWAYS AS ... VIRTUAL कॉलम का उपयोग करें। सिंटैक्स ALTER TABLE yourTableName ADD COLUMN yourColumnName yourDataType GENERATED ALWAYS AS ((col1 + col2 + ... + colN) / N) VIRTUAL; उदाहरण टेबल बनाएं: INSERT INTO demo32 VALUES (30,60), (20,40), (35,35); वर्चुअल कॉलम जोड़ें GENERATE