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

MySQL में अवरोही क्रम में ऑर्डर करके एक ही टेबल से चुनकर केवल एक मान अपडेट करें

इसके लिए ORDER BY DESC के साथ LIMIT क्लॉज का उपयोग करें। ORDER BY DESC अवरोही क्रम में ऑर्डर करता है जहां LIMIT रिकॉर्ड्स की संख्या सेट करता है। यहां हम LIMIT 1 सेट करेंगे क्योंकि हम केवल एक रिकॉर्ड चाहते हैं।

आइए पहले एक टेबल बनाते हैं:

mysql> create table DemoTable ( 
    StudentName varchar(100), 
    StudentMarks int ); 
Query OK, 0 rows affected (0.54 sec)

इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

mysql> insert into DemoTable values('Chris',45); 
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Bob',78); 
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Mike',34); 
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Robert',67); 
Query OK, 1 row affected (0.16 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable;

यह निम्नलिखिक आउटपुट देगा:

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       | 45           |
| Bob         | 78           |
| Mike        | 34           |
| Robert      | 67           |
+-------------+--------------+
4 rows in set (0.00 sec)

अवरोही क्रम में ऑर्डर करके केवल एक मान अपडेट करने की क्वेरी

mysql> update DemoTable set StudentName='Adam' order by StudentMarks DESC LIMIT 1; 
Query OK, 1 row affected (0.10 sec)
Rows matched: 1 Changed: 1 Warnings: 0

आइए टेबल रिकॉर्ड एक बार फिर जांचें:

mysql> select * from DemoTable;

यह निम्नलिखिक आउटपुट देगा:

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       | 45           |
| Adam        | 78           |
| Mike        | 34           |
| Robert      | 67           |
+-------------+--------------+
4 rows in set (0.00 sec)

व्याख्या

  • ORDER BY StudentMarks DESC अंकों के अवरोही क्रम में सॉर्ट करता है (78, 67, 45, 34)
  • LIMIT 1 केवल पहली पंक्ति (उच्चतम अंक: 78, Bob) को अपडेट करता है
  • Bob का नाम 'Adam' में बदल जाता है, अंक 78 रहता है
  • MySQL UPDATE में ORDER BY और LIMIT का समर्थन करता है (मानक SQL में नहीं)

सावधानी

WHERE क्लॉज के बिना ORDER BY LIMIT अप्रत्याशित हो सकता है यदि डेटा बदलता है। उत्पादन में विशिष्ट WHERE शर्त जोड़ें।

  1. - क्या हम MySQL SELECT IN() में एकल मान सेट कर सकते हैं?

    हाँ, हम MySQL में IN() के साथ एकल मान सेट कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> FirstName varchar(20) -> ); Query OK, 0 rows affected (0.65 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Chris)

  1. - MySQL में SELECT INTO वेरिएबल से विशिष्ट पंक्ति का एकल मान प्राप्त करें

    SELECT column INTO @variable FROM table WHERE condition का उपयोग करके एकल पंक्ति का एकल मान यूज़र-डिफ़ाइन्ड वेरिएबल में संग्रहीत करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1896 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName VARCHAR(20), StudentMarks INT ); डेटा

  1. - MySQL में NOT IN से मान न होने वाली पंक्तियां चुनें

    NOT IN ऑपरेटर से विशिष्ट मानों को बाहर रखें कुछ मानों को छोड़कर बाकी पंक्तियां प्राप्त करने के लिए NOT IN() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1991 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20) ); Query OK, 0 rows affected (0.61 se