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

MySQL में क्रम के आधार पर कॉलम को INTEGER से अपडेट करें

यूजर वेरिएबल से क्रमिक संख्या असाइन करना

यूजर-डिफाइंड वेरिएबल (@var) और ORDER BY का उपयोग करके पंक्तियों को क्रमिक संख्या (1, 2, 3...) से अपडेट करें।

सिंटैक्स

SET @yourVariableName = 0;
UPDATE yourTableName
SET yourColumnName = (@yourVariableName := @yourVariableName + 1)
ORDER BY yourColumnName ASC;

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

mysql> create table updateColumnDemo (
    -> Id int,
    -> OrderCountryName varchar(100),
    -> OrderAmount int
    -> );
Query OK, 0 rows affected (1.76 sec)
mysql> insert into updateColumnDemo(Id,OrderCountryName) values(10,'US');
mysql> insert into updateColumnDemo(Id,OrderCountryName) values(20,'UK');
mysql> insert into updateColumnDemo(Id,OrderCountryName) values(30,'AUS');
mysql> insert into updateColumnDemo(Id,OrderCountryName) values(40,'France');

अपडेट से पहले (OrderAmount NULL है)

+------+------------------+-------------+
| Id   | OrderCountryName | OrderAmount |
+------+------------------+-------------+
| 10   | US               | NULL        |
| 20   | UK               | NULL        |
| 30   | AUS              | NULL        |
| 40   | France           | NULL        |
+------+------------------+-------------+

क्रमिक अपडेट क्वेरी

mysql> SET @sequenceNumber = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> UPDATE updateColumnDemo
    -> SET OrderAmount = (@sequenceNumber := @sequenceNumber + 1)
    -> ORDER BY OrderAmount ASC;
Query OK, 4 rows affected (0.25 sec)

अपडेट के बाद

+------+------------------+-------------+
| Id   | OrderCountryName | OrderAmount |
+------+------------------+-------------+
| 10   | US               | 1           |
| 20   | UK               | 2           |
| 30   | AUS              | 3           |
| 40   | France           | 4           |
+------+------------------+-------------+

महत्वपूर्ण नोट्स

  • ORDER BY क्रम निर्धारित करता है
  • @var := @var + 1 असाइनमेंट और इन्क्रीमेंट दोनों करता है
  • प्रारंभिक मान SET @var = 0 से सेट करें
  • MySQL 8.0+ में ROW_NUMBER() विंडो फ़ंक्शन बेहतर विकल्प है
  1. - ईमेल पते के आधार पर MySQL कॉलम अपडेट करें?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> EmailAddress varchar(20), -> Score int -> ); Query OK, 0 rows affected (1.05 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Chris@gmail.com,67); Query OK, 1 row affe

  1. - MySQL में न्यूमेरिक यूज़र-डिफ़ाइंड वेरिएबल के साथ ORDER BY कैसे करें?

    MySQL में डायनामिक कॉलम नाम के साथ ORDER BY करने के लिए, यूज़र-डिफ़ाइंड वेरिएबल और PREPARED STATEMENT का उपयोग करें। यह तब उपयोगी होता है जब कॉलम का नाम रनटाइम पर तय होता है। उदाहरण: वेरिएबल के साथ डायनामिक ORDER BY डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1898 (Number INT); डेटा इन्सर्ट

  1. - MySQL में एक क्वेरी से दो कॉलम कैसे अपडेट करें?

    MySQL में एक ही UPDATE स्टेटमेंट में एकाधिक कॉलम अपडेट करने के लिए, SET क्लॉज़ में कॉलम को कॉमा से अलग करके सूचीबद्ध करें। यह एटॉमिक ऑपरेशन सुनिश्चित करता है और क्वेरी ओवरहेड कम करता है। उदाहरण: FirstName और LastName एक साथ अपडेट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1909 ( Id