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

MySQL में उपयोगकर्ता वेरिएबल से दो फील्ड मानों को कैसे स्वैप करें?

MySQL में दो कॉलम मान स्वैप करना: उपयोगकर्ता वेरिएबल का उपयोग

MySQL में एक ही पंक्ति के दो कॉलम मानों को स्वैप करने के लिए उपयोगकर्ता वेरिएबल (@var) का उपयोग करके अस्थायी भंडारण किया जा सकता है।

उदाहरण: Id=2 वाली पंक्ति में Number1 और Number2 स्वैप करें

टेबल बनाएं:

CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Number1 INT, Number2 INT
);
INSERT INTO DemoTable (Number1, Number2) VALUES (10, 30), (60, 50), (110, 100);

डेटा:

+----+---------+---------+
| Id | Number1 | Number2 |
+----+---------+---------+
| 1  | 10      | 30      |
| 2  | 60      | 50      |
| 3  | 110     | 100     |
+----+---------+---------+

स्वैप क्वेरी (Id=2 के लिए)

UPDATE DemoTable 
SET Number1 = (@tmp := Number1),
    Number1 = Number2,
    Number2 = @tmp
WHERE Id = 2;

परिणाम:

+----+---------+---------+
| Id | Number1 | Number2 |
+----+---------+---------+
| 1  | 10      | 30      |
| 2  | 50      | 60      |
| 3  | 110     | 100     |
+----+---------+---------+

चरण-दर-चरण

  1. @tmp := Number1 — वर्तमान Number1 (60) को @tmp में स्टोर करता है, और Number1 को 60 सेट करता है (कोई बदलाव नहीं)
  2. Number1 = Number2 — Number1 को Number2 (50) पर सेट करता है
  3. Number2 = @tmp — Number2 को @tmp (मूल Number1 = 60) पर सेट करता है

महत्वपूर्ण: असाइनमेंट क्रम

MySQL SET क्लॉज में असाइनमेंट बाएं से दाएं मूल्यांकन करता है। इसलिए:

UPDATE DemoTable 
SET Number1 = Number2, Number2 = Number1 
WHERE Id = 2;

नोट: यह MySQL के पुराने संस्करणों में अप्रत्याशित व्यवहार दे सकता है। उपयोगकर्ता वेरिएबल तरीका सुरक्षित है।

  1. - MySQL में विशिष्ट कॉलम मान की अदला-बदली करना

    UPDATE और WHERE से विशिष्ट पंक्ति का मान बदलना UPDATE में WHERE क्लॉज का उपयोग करके केवल विशिष्ट शर्त पूरी करने वाली पंक्ति का कॉलम मान बदला जा सकता है। तालिका और डेटा (101, Chris), (102, Bob), (103, David), (104, Mike); आईडी 103 का नाम Carol में बदलना WHERE Id = 103 AND FirstName <> Carol; Que

  1. - MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल से एक कॉलम का मान दूसरे कॉलम से प्राप्त करें

    MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल (@var) का उपयोग करके पिछली पंक्ति के मान के आधार पर वर्तमान पंक्ति के लिए चल योग (क्यूमुलेटिव सम) या अन्य व्युत्पन्न मान की गणना कर सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1868 (Value INT); डेटा डालें mysql> INSERT INTO DemoTable1868 VALUES(10), (2

  1. - MySQL में विशिष्ट मान वाले कॉलम की संख्या कैसे गिनें?

    SUM() के साथ गणना बाइनरी मान (0/1) वाले कॉलम के लिए: select sum(value1+value2+value3) as `Total_Number_Of_1`, sum(value1 and value2 and value3) as `Total_Number_Of_Rows_With_1` from yourTableName; उदाहरण insert into demo36(value1,value2,value3) values(1,0,0), (1,0,1), (1,1,1), (0,1,0), (