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に置き換えられました。
-
MySQLは空白値の列をNULLに更新します
このために、UPDATEコマンドと一緒にIF()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1601 -> ( -> FirstName varchar(20) , -> LastName varchar(20) -> ); Query OK, 0 rows affected (0.53 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert
-
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