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

MySQL में nth पंक्ति कैसे डिलीट करें?


सबक्वेरी के साथ DELETE से nth पंक्ति हटाएं

MySQL में nth पंक्ति डिलीट करने के लिए DELETE के साथ LIMIT वाली सबक्वेरी का उपयोग करें।

उदाहरण

टेबल बनाएं:

mysql> CREATE TABLE DemoTable1 (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(100)
    -> );

डेटा इन्सर्ट करें:

mysql> INSERT INTO DemoTable1(StudentName) VALUES('Larry'), ('Sam'), ('Mike'), ('Carol'), ('David'), ('Bob');

सभी रिकॉर्ड:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Larry       |
| 2         | Sam         |
| 3         | Mike        |
| 4         | Carol       |
| 5         | David       |
| 6         | Bob         |
+-----------+-------------+

दूसरी पंक्ति (n=2) डिलीट करने की क्वेरी

mysql> DELETE FROM DemoTable1 
    -> WHERE StudentId = (
    ->     SELECT StudentId FROM (
    ->         SELECT StudentId FROM DemoTable1 ORDER BY StudentId LIMIT 1, 1
    ->     ) AS tbl
    -> );

आउटपुट: Query OK, 1 row affected (0.19 sec)

डिलीट के बाद:

mysql> SELECT * FROM DemoTable1;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Larry       |
| 3         | Mike        |
| 4         | Carol       |
| 5         | David       |
| 6         | Bob         |
+-----------+-------------+

कैसे काम करता है:

  1. आंतरिक सबक्वेरी: ORDER BY StudentId LIMIT 1, 1 - पहली पंक्ति छोड़कर दूसरी पंक्ति चुनता है
  2. बाहरी सबक्वेरी: SELECT StudentId FROM (...) AS tbl - MySQL की आवश्यकता पूरी करता है (सबक्वेरी को डेराइव्ड टेबल बनाता है)
  3. मुख्य DELETE: मिले StudentId वाली पंक्ति हटाता है

सामान्य पैटर्न: nth पंक्ति (1-आधारित)

DELETE FROM table_name
WHERE id_column = (
    SELECT id_column FROM (
        SELECT id_column FROM table_name ORDER BY id_column LIMIT n-1, 1
    ) AS t
);

चेतावनी: यह ऑपरेशन स्थायी है। पहले SELECT से वही सबक्वेरी चलाकर पुष्टि करें।

MySQL 8.0+ विकल्प: CTE (Common Table Expression) से अधिक पठनीय:

WITH numbered AS (
    SELECT StudentId, ROW_NUMBER() OVER (ORDER BY StudentId) AS rn
    FROM DemoTable1
)
DELETE FROM DemoTable1
WHERE StudentId = (SELECT StudentId FROM numbered WHERE rn = 2);
  1. - MySQL कॉलम में प्रत्येक पंक्ति के समान मान की गिनती करें?

    प्रत्येक पंक्ति के समान मान की गिनती के लिए COUNT(*) का उपयोग GROUP BY क्लॉज के साथ करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1818 ( Id int, Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> ins

  1. - MySQL में किसी कॉलम का अधिकतम मान रखने वाली रो

    आइए समझते हैं कि MySQL में किसी विशिष्ट कॉलम का अधिकतम मान रखने वाली रो कैसे खोजें: नोट: हम मानते हैं कि हमने DBNAME नामक एक डेटाबेस और tableName नामक एक टेबल बनाई है। आइए देखें कि MySQL क्वेरी का उपयोग करके किसी विशिष्ट कॉलम का अधिकतम मान रखने वाली रो कैसे प्राप्त करें: यह सबक्वेरी का उपयोग करक

  1. - mysqld: MySQL सर्वर (मुख्य डेमॉन)

    mysqld (MySQL Server) एकल मल्टीथ्रेडेड प्रोग्राम है जो MySQL इंस्टॉलेशन में अधिकांश कार्य करता है। यह अतिरिक्त प्रोसेस स्पॉन नहीं करता। कार्य MySQL डेटा डायरेक्टरी (डेटाबेस, टेबल) तक पहुंच प्रबंधित करता है। डेटा डायरेक्टरी लॉग फ़ाइलों और स्टेटस फ़ाइलों का डिफ़ॉल्ट स्थान भी है। नेटवर्क कनेक्शन सुनत