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

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


これには、COALESCE()を使用できます。まずテーブルを作成しましょう-

mysql> create table DemoTable1805
     (
     Name1 varchar(20),
     Name2 varchar(20)
     );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1805 values('Chris',NULL);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1805 values('David','Mike');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1805 values(NULL,'Mike');
Query OK, 1 row affected (0.00 sec)

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

mysql> select * from DemoTable1805;

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

+-------+-------+
| Name1 | Name2 |
+-------+-------+
| Chris | NULL  |
| David | Mike  |
| NULL  | Mike  |
+-------+-------+
3 rows in set (0.00 sec

これは、1つのフィールドのみを更新するクエリです-

mysql> update DemoTable1805
     set Name1 = coalesce(Name1,Name2);
Query OK, 1 row affected (0.00 sec)
Rows matched: 3  Changed: 1 Warnings: 0

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

mysql> select * from DemoTable1805;

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

+-------+-------+
| Name1 | Name2 |
+-------+-------+
| Chris | NULL  |
| David | Mike  |
| Mike  | Mike  |
+-------+-------+
3 rows in set (0.00 sec)

  1. MySQLは1つのクエリで複数のレコードを更新しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Marks1 int,    -> Marks2 int,    -> Marks3 int    -> ); Query OK, 0 rows affected (0.60 sec) 挿入コマンド-を使用して、テー

  2. 1つのMySQLクエリで2つの列を更新します

    このためには、SETコマンドを1回だけ使用する必要があります。まずテーブルを作成しましょう- mysql> create table DemoTable1909    (    Id int NOT NULL,    FirstName varchar(20),    LastName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> ins