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

MySQL UPDATE में इन्क्रीमेंट (वृद्धि) कैसे करें?


MySQL में यूजर-डिफाइंड वेरिएबल का उपयोग करके UPDATE स्टेटमेंट में मानों को वृद्धिशील रूप से अपडेट करें।

सिंटैक्स

-- वेरिएबल इनिशियलाइज़ करें
SET @incrementValue := initial_value;

-- इन्क्रीमेंट के साथ UPDATE
UPDATE yourTableName 
SET columnName = (SELECT @incrementValue := @incrementValue + @incrementValue);

उदाहरण

टेबल बनाना

mysql> create table UpdateValueIncrementally (
-> ProductId int
-> ); Query OK, 0 rows affected (0.90 sec)

रिकॉर्ड डालना

mysql> insert into UpdateValueIncrementally values(10);
mysql> insert into UpdateValueIncrementally values(100);
mysql> insert into UpdateValueIncrementally values(1000);
mysql> insert into UpdateValueIncrementally values(110);
mysql> insert into UpdateValueIncrementally values(102);

अपडेट से पहले

mysql> select *from UpdateValueIncrementally;
+-----------+
| ProductId |
+-----------+
| 10        |
| 100       |
| 1000      |
| 110       |
| 102       |
+-----------+

वेरिएबल इनिशियलाइज़ और UPDATE

mysql> set @incrementValue := 33333; 
Query OK, 0 rows affected (0.00 sec)

mysql> update UpdateValueIncrementally 
set ProductId = (select @incrementValue := @incrementValue + @incrementValue); 
Query OK, 5 rows affected (0.21 sec)

अपडेट के बाद

mysql> select *from UpdateValueIncrementally;
+-----------+
| ProductId |
+-----------+
| 66666     |
| 133332    |
| 266664    |
| 533328    |
| 1066656   |
+-----------+

व्याख्या

  • @incrementValue := 33333 — प्रारंभिक मान सेट करता है
  • @incrementValue := @incrementValue + @incrementValue — वर्तमान मान को दोगुना करता है (33333 → 66666 → 133332...)
  • प्रत्येक पंक्ति के लिए वेरिएबल अपडेट होता है
  • नोट: यह उदाहरण दोगुना करता है, निश्चित वृद्धि के लिए @incrementValue := @incrementValue + 1 उपयोग करें

सामान्य वृद्धि पैटर्न (1 से बढ़ाना)

SET @seq := 0;
UPDATE table_name SET column_name = (@seq := @seq + 1) ORDER BY some_column;

आधुनिक विकल्प: विंडो फंक्शन (MySQL 8.0+)

-- सीक्वेंस नंबर जनरेट करना
UPDATE table_name t
JOIN (
  SELECT id, ROW_NUMBER() OVER (ORDER BY sort_column) AS rn
  FROM table_name
) seq ON t.id = seq.id
SET t.column_name = seq.rn;

सावधानियां

  • वेरिएबल विधि क्रम पर निर्भर — हमेशा ORDER BY उपयोग करें
  • बिना ORDER BY के परिणाम अप्रत्याशित हो सकते हैं
  • जटिल क्वेरी में वेरिएबल व्यवहार अनिश्चित हो सकता है
  • MySQL 8.0+ में विंडो फंक्शन या CTE प्राथमिकता दें

  1. - MySQL में SOUNDEX() फ़ंक्शन का उपयोग कैसे करें?

    MySQL में SOUNDEX() फ़ंक्शन समान उच्चारण वाले शब्दों को खोजने के लिए साउंडेक्स कोड लौटाता है। सिंटैक्स SELECT * FROM yourTableName WHERE SOUNDEX(yourValue) = SOUNDEX(yourColumnName); टेबल निर्माण mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARC

  1. - MySQL में LIKE ऑपरेटर से स्ट्रिंग मिलान करना

    MySQL में पैटर्न मिलान के लिए LIKE ऑपरेटर का उपयोग किया जाता है। यह वाइल्डकार्ड कैरेक्टर्स % (कोई भी अक्षरों का अनुक्रम) और _ (एकल अक्षर) का समर्थन करता है। उदाहरण के लिए टेबल बनाना mysql> CREATE TABLE DemoTable ( MonthName VARCHAR(100) ); डेटा डालना mysql> INSERT INTO DemoTable VALUES(J

  1. - MySQL टेबल को बैच अपडेट कैसे करें?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> BreakfastTime time -> ); Query OK, 0 rows affected (0.59 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(7:30:45); Query OK, 1 row affected (0.19 sec) mysql> insert i