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

MySQL में फ़ील्ड वैल्यू 0 से अधिक होने पर 1 घटाना कैसे करें?


आप इसके लिए UPDATE कमांड के साथ CASE स्टेटमेंट का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं:

mysql> create table DemoTable (    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Value int ); Query OK, 0 rows affected (1.44 sec)

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

mysql> insert into DemoTable(Value) values(100); Query OK, 1 row affected (0.47 sec) mysql> insert into DemoTable(Value) values(0); Query OK, 1 row affected (4.16 sec) mysql> insert into DemoTable(Value) values(104); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable(Value) values(0); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable(Value) values(5); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable(Value) values(10); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable(Value) values(0); Query OK, 1 row affected (0.18 sec)

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

mysql> select *from DemoTable;

इससे निम्न आउटपुट प्राप्त होगा:

+----+-------+ | Id | Value | +----+-------+ | 1 | 100 | | 2 | 0 | | 3 | 104 | | 4 | 0 | | 5 | 5 | | 6 | 10 | | 7 | 0 | +----+-------+ 7 rows in set (0.00 sec)

अब फ़ील्ड वैल्यू 0 से अधिक होने पर घटाने की शर्त सेट करें, अन्यथा वही रहने दें:

mysql> update DemoTable set Value=CASE WHEN Value > 0 THEN Value-1 ELSE 0 END; Query OK, 4 rows affected (0.25 sec) Rows matched: 7 Changed: 4 Warnings: 0

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

mysql> select *from DemoTable;

इससे निम्न आउटपुट प्राप्त होगा:

+----+-------+ | Id | Value | +----+-------+ | 1 | 99 | | 2 | 0 | | 3 | 103 | | 4 | 0 | | 5 | 4 | | 6 | 9 | | 7 | 0 | +----+-------+ 7 rows in set (0.00 sec)

  1. - MySQL में सटीक स्ट्रिंग मान कैसे खोजें

    COLLATE utf8_bin का उपयोग करके केस-सेंसिटिव खोज सटीक स्ट्रिंग मान खोजने के लिए COLLATE का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1620 ( Subject varchar(20) ); Query OK, 0 rows affected (0.42 sec) रिकॉर्ड डालें: insert into DemoTable1620 values(MYSQL); Query OK, 1 row affected (0.20 sec

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

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

  1. - MySQL में ORDER BY से विशिष्ट मान को अंत में कैसे सॉर्ट करें?

    ट्रिक: बूलियन अभिव्यक्ति सॉर्टिंग (full_name=Not Known) TRUE=1, FALSE=0 देता है। ASC क्रम में 0 पहले, 1 बाद में आता है। उदाहरण insert into demo57(full_name) values(John Smith), (David Miller), (Not Known), (Chris Brown); क्वेरी select * from demo57 order by (full_name=Not Known), full_name desc