सिंटैक्स:
UPDATE yourTableName SET yourColumnName1 = yourValue WHERE yourColumnName2 = yourValue ORDER BY yourColumnName2 DESC LIMIT 1;
टेबल बनाएं
mysql> create table DemoTable (
-> Id INT,
-> Name VARCHAR(100)
-> );
Query OK, 0 rows affected (0.61 sec)
रिकॉर्ड्स डालें
mysql> insert into DemoTable values(1,'John'); Query OK, 1 row affected (0.41 sec) mysql> insert into DemoTable values(2,'Chris'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(2,'Robert'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(2,'David'); Query OK, 1 row affected (0.18 sec)
सभी रिकॉर्ड्स देखें
mysql> select * from DemoTable;
+------+--------+ | Id | Name | +------+--------+ | 1 | John | | 2 | Chris | | 2 | Robert | | 2 | David | +------+--------+ 4 rows in set (0.00 sec)
WHERE क्लॉज़ में एकाधिक फ़ील्ड्स के साथ SQL में टेबल अपडेट करने का क्वेरी
mysql> UPDATE DemoTable SET Name='Adam Smith' WHERE Id=2 ORDER BY Id DESC LIMIT 1; Query OK, 1 row affected (0.28 sec) Rows matched: 1 Changed: 1 Warnings: 0
फिर से जांचें
mysql> select * from DemoTable;
+------+------------+ | Id | Name | +------+------------+ | 1 | John | | 2 | Adam Smith | | 2 | Robert | | 2 | David | +------+------------+ 4 rows in set (0.00 sec)
व्याख्या:
WHERE Id=2- तीन पंक्तियां मेल खाती हैंORDER BY Id DESC- अवरोही क्रम (सभी समान Id, इसलिए क्रम अनिश्चित)LIMIT 1- केवल पहली मेल खाने वाली पंक्ति अपडेट करें- परिणाम: Id=2 की अंतिम सम्मिलित पंक्ति (David) अपडेट होकर 'Adam Smith' बनी
सावधानी: डुप्लिकेट आईडी वाली टेबल्स में ORDER BY LIMIT अप्रत्याशित हो सकता है। प्राथमिक कुंजी या अद्वितीय पहचानकर्ता का उपयोग करें।