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

MySQL में शर्तों के आधार पर रिकॉर्ड्स को कैसे बदलें?

MySQL CASE स्टेटमेंट का उपयोग करके सशर्त अपडेट

MySQL में विशिष्ट शर्तों के आधार पर रिकॉर्ड्स को अपडेट करने के लिए CASE स्टेटमेंट का उपयोग किया जाता है। यह आपको एक ही क्वेरी में कई शर्तों को संभालने की अनुमति देता है।

उदाहरण: खिलाड़ियों के स्कोर अपडेट करना

सबसे पहले एक टेबल बनाते हैं और कुछ डेटा डालते हैं:

mysql> CREATE TABLE DemoTable1481 (
    -> PlayerScore INT
    -> );
Query OK, 0 rows affected (0.42 sec)

mysql> INSERT INTO DemoTable1481 VALUES (454), (765), (890);
Query OK, 3 rows affected (0.14 sec)

mysql> SELECT * FROM DemoTable1481;
+-------------+
| PlayerScore |
+-------------+
|         454 |
|         765 |
|         890 |
+-------------+
3 rows in set (0.00 sec)

CASE स्टेटमेंट के साथ UPDATE क्वेरी

अब हम प्रत्येक स्कोर को विशिष्ट मानों से बदलेंगे:

mysql> UPDATE DemoTable1481
    -> SET PlayerScore = CASE
    ->     WHEN PlayerScore = 454 THEN 1256
    ->     WHEN PlayerScore = 765 THEN 1865
    ->     WHEN PlayerScore = 890 THEN 3990
    -> END;
Query OK, 3 rows affected (0.17 sec)
Rows matched: 3  Changed: 3  Warnings: 0

परिणाम सत्यापित करें

mysql> SELECT * FROM DemoTable1481;
+-------------+
| PlayerScore |
+-------------+
|        1256 |
|        1865 |
|        3990 |
+-------------+
3 rows in set (0.00 sec)

मुख्य बिंदु

  • CASE स्टेटमेंट एक ही कॉलम में कई सशर्त अपडेट की अनुमति देता है
  • प्रत्येक WHEN क्लॉज एक शर्त और उसका परिणाम परिभाषित करता है
  • END केस स्टेटमेंट को समाप्त करता है
  • यह दृष्टिकोण कई अलग-अलग UPDATE क्वेरी चलाने से अधिक कुशल है
  1. - MySQL में IF स्टेटमेंट का उपयोग करके UPDATE स्टेटमेंट में शर्तें सेट करके रिकॉर्ड प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> StudentMarks int, -> Status varchar(20) -> ); Query OK, 0 rows affected (0.97 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्

  1. - MySQL में MONTH() और YEAR() से विशिष्ट माह-वर्ष के रिकॉर्ड प्राप्त करें

    डेट कॉलम से माह और वर्ष निकालकर फ़िल्टर करने के लिए MySQL के MONTH() और YEAR() फ़ंक्शन का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1846 ( PurchaseDate DATE ); डेटा डालें mysql> INSERT INTO DemoTable1846 VALUES(2019-01-10); mysql> INSERT INTO DemoTable1846 VALUES(2019-12-24)

  1. - MySQL में URL रिकॉर्ड के भाग को ढूंढें और बदलें

    समाधान REPLACE() फंक्शन का उपयोग करके स्ट्रिंग के भाग को बदलें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2025 VALUES (http=//www.gmail.com); अपडेट क्वेरी UPDATE DemoTable2025 SET URL = REPLACE(URL, http=, https:); परिणाम +--------------------------+ | URL | +----------------