MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

フィールドにnullまたは0が含まれている場合にのみ、MySQLフィールドを更新しますか?


このために、MySQL IF()を使用して条件を設定します。まずテーブルを作成しましょう-

mysql> create table DemoTable1592
   -> (
   -> StudentMarks int
   -> );
Query OK, 0 rows affected (0.76 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1592 values(56);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1592 values(NULL);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1592 values(98);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1592 values(0);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1592 values(75);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1592 values(NULL);
Query OK, 1 row affected (0.11 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1592;

これにより、次の出力が生成されます-

+--------------+
| StudentMarks |
+--------------+
|           56 |
|         NULL |
|           98 |
|            0 |
|           75 |
|         NULL |
+--------------+
6 rows in set (0.00 sec)

これは、フィールドにnullまたは0が含まれている場合にのみフィールドを更新するクエリです-

mysql> update DemoTable1592 set StudentMarks=if(StudentMarks IS NULL or StudentMarks=0,33,StudentMarks);
Query OK, 3 rows affected (0.17 sec)
Rows matched: 6  Changed: 3 Warnings: 0

テーブルレコードをもう一度確認しましょう-

mysql> select * from DemoTable1592;

これにより、次の出力が生成されます-

+--------------+
| StudentMarks |
+--------------+
|           56 |
|           33 |
|           98 |
|           33 |
|           75 |
|           33 |
+--------------+
6 rows in set (0.00 sec)

  1. NULLの代わりに単一のフィールドのみを更新するMySQLクエリ

    これには、COALESCE()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1805      (      Name1 varchar(20),      Name2 varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTabl

  2. MySQL:Group Byでフィールドを更新しますか?

    GROUP BYでフィールドを更新するには、UPDATEコマンドでORDERBYLIMITを使用します- mysql> create table DemoTable2018    -> (    -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> EmployeeName varchar(20),    -> EmployeeSalary int    -> ); Query OK, 0 r