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

MySQLのフィールドのNULL値を更新するにはどうすればよいですか?


まずテーブルを作成しましょう-

mysql> create table OrderDemo
   -> (
   -> OrderId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> OrderPrice int,
   -> OrderDatetime datetime
   -> );
Query OK, 0 rows affected (0.66 sec)

これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです-

mysql> insert into OrderDemo(OrderPrice,OrderDatetime) values(200,'2016-09-12');
Query OK, 1 row affected (0.24 sec)
mysql> insert into OrderDemo(OrderPrice,OrderDatetime) values(NULL,'2002-11-18');
Query OK, 1 row affected (0.26 sec)
mysql> insert into OrderDemo(OrderPrice,OrderDatetime) values(1000,'2017-12-28');
Query OK, 1 row affected (0.15 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from OrderDemo;

出力

+---------+------------+---------------------+
| OrderId | OrderPrice | OrderDatetime       |
+---------+------------+---------------------+
|       1 |        200 | 2016-09-12 00:00:00 |
|       2 |       NULL | 2002-11-18 00:00:00 |
|       3 |       1000 | 2017-12-28 00:00:00 |
+---------+------------+---------------------+
3 rows in set (0.00 sec)

これは、OrderPriceがNULLであるOrderPrice列に行を追加するためのクエリです。つまり、NULL-

を更新します。
mysql> update OrderDemo set OrderPrice = 6500 where OrderPrice IS NULL;
Query OK, 1 row affected (0.17 sec)
Rows matched: 1 Changed: 1 Warnings: 0

次に、テーブルレコードをもう一度確認します。クエリは次のとおりです-

mysql> select *from OrderDemo;

出力

+---------+------------+---------------------+
| OrderId | OrderPrice | OrderDatetime       |
+---------+------------+---------------------+
|       1 |        200 | 2016-09-12 00:00:00 |
|       2 |       6500 | 2002-11-18 00:00:00 |
|       3 |       1000 | 2017-12-28 00:00:00 |
+---------+------------+---------------------+
3 rows in set (0.00 sec)

NULL値は6500に置き換えられました。


  1. MySQLは空白値の列をNULLに更新します

    このために、UPDATEコマンドと一緒にIF()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1601    -> (    -> FirstName varchar(20) ,    -> LastName varchar(20)    -> ); Query OK, 0 rows affected (0.53 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert

  2. 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