フィールドに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)
-
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
-
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