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

MySQL UPDATE: उच्चतम ID और फील्ड मान की शर्त साथ में

ORDER BY ... DESC LIMIT 1 से नवीनतम पंक्ति अपडेट करें

सबसे अधिक ID वाली पंक्ति (नवीनतम) को विशिष्ट शर्त के साथ अपडेट करने के लिए ORDER BY id DESC LIMIT 1 का उपयोग करें।

सिंटैक्स

UPDATE yourTableName
SET column1 = value
WHERE condition
ORDER BY idColumn DESC
LIMIT 1;

उदाहरण: टेबल और डेटा

mysql> create table UpdateWithHighestDemo (
    -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserStatus tinyint,
    -> UserRank int
    -> );
mysql> INSERT INTO UpdateWithHighestDemo(UserStatus,UserRank) VALUES
(1,78), (0,118), (1,223), (1,225), (0,227), (0,230);

डेटा

+--------+------------+----------+
| UserId | UserStatus | UserRank |
+--------+------------+----------+
| 1      | 1          | 78       |
| 6      | 0          | 230      |
+--------+------------+----------+

केस 1: UserRank=230 वाली पंक्ति अपडेट करें

mysql> UPDATE UpdateWithHighestDemo
    -> SET UserStatus = 1
    -> WHERE UserRank = 230
    -> ORDER BY UserId DESC LIMIT 1;

परिणाम: UserId=6 का UserStatus 0→1 हो गया।

केस 2: उच्चतम UserId वाली पंक्ति अपडेट करें (कोई WHERE शर्त नहीं)

mysql> UPDATE UpdateWithHighestDemo
    -> SET UserStatus = 0
    -> ORDER BY UserId DESC LIMIT 1;

परिणाम: UserId=6 का UserStatus 1→0 हो गया।

महत्वपूर्ण बिंदु

  • ORDER BY ... DESC LIMIT 1 सबसे हाल की पंक्ति लक्षित करता है
  • WHERE क्लॉज के साथ संयोजित करके विशिष्ट शर्त + नवीनतम पंक्ति
  • बिना WHERE के ORDER BY ... LIMIT 1 पूरी टेबल की नवीनतम पंक्ति अपडेट करता है
  • प्रदर्शन के लिए इंडेक्स्ड कॉलम पर ORDER BY उपयोग करें
  1. - MySQL में केवल एक फील्ड को NULL के स्थान पर अपडेट करने का क्वेरी

    इसके लिए आप COALESCE() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1805 ( Name1 varchar(20), Name2 varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1805 values(Chr

  1. - MySQL: GROUP BY के साथ फील्ड कैसे अपडेट करें?

    समस्या MySQL सीधे UPDATE में GROUP BY का समर्थन नहीं करता। समाधान: ORDER BY LIMIT का उपयोग करें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES (Chris, 25400); अपडेट क्वेरी Chris की पहली प्रविष्टि (EmployeeId के अनुसार) का वेतन बढ़ाएं: ORDER B

  1. - MySQL में कस्टम वेरिएबल के साथ वैध क्वेरी लिखकर अपडेट कैसे करें

    उदाहरण टेबल बनाएं: INSERT INTO DemoTable2027 VALUES (10), (20), (31), (11); कस्टम वेरिएबल के साथ अपडेट UPDATE DemoTable2027 SET UserId = (@uId := @uId + 10); परिणाम +--------+ | UserId | +--------+ | 110 | | 120 | | 130 | | 140 | +--------+ व्याख्या: @uId वेरिएबल 100 से शुरू होता है