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

MySQL में टेबल से अंतिम रिकॉर्ड (शर्त के साथ) कैसे हटाएं

टेबल से अंतिम रिकॉर्ड (शर्त के साथ) हटाने के लिए, आपको ORDER BY DESC के साथ LIMIT 1 का उपयोग करने की आवश्यकता है।

सिंटैक्स इस प्रकार है:

DELETE FROM yourTableName WHERE yourColumnName1=yourValue ORDER BY yourColumnName2 DESC LIMIT 1;

उपरोक्त सिंटैक्स टेबल से अंतिम रिकॉर्ड (शर्त के साथ) हटा देगा। यह कॉलम को अवरोही क्रम में क्रमबद्ध करता है और हटाने के लिए पहले तत्व को चुनता है।

उपरोक्त सिंटैक्स को समझने के लिए, आइए एक टेबल बनाते हैं। टेबल बनाने की क्वेरी इस प्रकार है:

mysql> create table UserLoginTable 
-> ( 
-> Id int NOT NULL AUTO_INCREMENT, 
-> UserId int, 
-> UserLoginDateTime datetime, 
-> PRIMARY KEY(Id) 
-> ); 
Query OK, 0 rows affected (0.94 sec)

insert कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड्स डालें। क्वेरी इस प्रकार है:

mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-01-27 13:47:20'); 
Query OK, 1 row affected (0.19 sec) 
mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(1,'2018-11-28 12:30:12'); 
Query OK, 1 row affected (0.16 sec) 
mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-01-26 11:30:30'); 
Query OK, 1 row affected (0.20 sec) 
mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(1,'2015-03-11 15:23:55'); 
Query OK, 1 row affected (0.21 sec) 
mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-03-21 16:01:56'); 
Query OK, 1 row affected (0.23 sec)

अब आप select स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड्स प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है:

mysql> select *from UserLoginTable;

निम्नलिखित आउटपुट है:

+----+--------+---------------------+ 
| Id | UserId | UserLoginDateTime | 
+----+--------+---------------------+ 
| 1 | 2 | 2019-01-27 13:47:20 | 
| 2 | 1 | 2018-11-28 12:30:12 | 
| 3 | 2 | 2019-01-26 11:30:30 | 
| 4 | 1 | 2015-03-11 15:23:55 | 
| 5 | 2 | 2019-03-21 16:01:56 | 
+----+--------+---------------------+ 
5 rows in set (0.00 sec)

टेबल से अंतिम रिकॉर्ड (शर्त के साथ) हटाने की क्वेरी यहां है:

mysql> delete from UserLoginTable where UserId=2 ORDER BY UserLoginDateTime DESC LIMIT 1; 
Query OK, 1 row affected (0.16 sec)

select स्टेटमेंट का उपयोग करके टेबल रिकॉर्ड एक बार फिर जांचें। क्वेरी इस प्रकार है:

mysql> select *from UserLoginTable;

निम्नलिखित आउटपुट है:

+----+--------+---------------------+ 
| Id | UserId | UserLoginDateTime | 
+----+--------+---------------------+ 
| 1 | 2 | 2019-01-27 13:47:20 | 
| 2 | 1 | 2018-11-28 12:30:12 | 
| 3 | 2 | 2019-01-26 11:30:30 | 
| 4 | 1 | 2015-03-11 15:23:55 | 
+----+--------+---------------------+ 
4 rows in set (0.00 sec)

UserId 2 के साथ अंतिम रिकॉर्ड अब टेबल से हटा दिया गया है।

नोट: ORDER BY ... LIMIT के साथ DELETE MySQL-विशिष्ट सिंटैक्स है (मानक SQL नहीं)। यह निर्दिष्ट शर्त से मेल खाने वाली नवीनतम (या सबसे पुरानी) पंक्ति को हटाने के लिए उपयोगी है। बड़े डेटासेट पर इंडेक्स (यहां UserId, UserLoginDateTime पर संयुक्त इंडेक्स) सुनिश्चित करें।
  1. - MySQL अस्थायी तालिका को कैसे हटाएं?

    हम जानते हैं कि यदि वर्तमान सत्र समाप्त होता है तो MySQL अस्थायी तालिका हटा दी जाएगी। लेकिन यदि अभी भी सत्र के बीच में हम अस्थायी तालिका को हटाना चाहते हैं तो DROP स्टेटमेंट की सहायता से हम अस्थायी तालिका को हटा सकते हैं। इसे निम्न उदाहरण की सहायता से समझा जा सकता है: उदाहरण इस उदाहरण में, हम SalesS

  1. - MySQL में टेबल रीनेम कैसे करें?

    ALTER TABLE ... RENAME TO सिंटैक्स से टेबल का नाम बदलें। उदाहरण CREATE TABLE Employee (EmpId INT, EmpName VARCHAR(200)); ALTER TABLE Employee RENAME TO EmployeeTable; सत्यापन SELECT * FROM Employee; ERROR 1146 (42S02): Table business.employee doesnt exist SELECT * FROM EmployeeTable; Empty set (

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर