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

MySQLを使用して特定の列の単一の値を除くすべてのエントリを更新するにはどうすればよいですか?


単一の値を無視してすべてのエントリを更新するには、IF()を使用する必要があります。

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

mysql> create table DemoTable736 (
   CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   CustomerName varchar(100),
   isMarried boolean
);
Query OK, 0 rows affected (0.53 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable736(CustomerName,isMarried) values('Chris',0);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable736(CustomerName,isMarried) values('Robert',0);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable736(CustomerName,isMarried) values('David',0);
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable736(CustomerName,isMarried) values('Mike',0);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable736(CustomerName,isMarried) values('Carol',1);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable736(CustomerName,isMarried) values('Bob',0);
Query OK, 1 row affected (0.20 sec)

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

mysql> select *from DemoTable736;

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

+------------+--------------+-----------+
| CustomerId | CustomerName | isMarried |
+------------+--------------+-----------+
| 1          | Chris        | 0         |
| 2          | Robert       | 0         |
| 3          | David        | 0         |
| 4          | Mike         | 0         |
| 5          | Carol        | 1         |
| 6          | Bob          | 0         |
+------------+--------------+-----------+
6 rows in set (0.00 sec)

以下は、MySQLを使用して特定の列の単一の値を除くすべてのエントリを更新するためのクエリです。ここでは、「isMarried」列を更新しています-

mysql> update DemoTable736 set isMarried=if(CustomerId=5,1,1);
Query OK, 5 rows affected (0.13 sec)
Rows matched: 6 Changed: 5 Warnings: 0

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

mysql> select *from DemoTable736;

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

+------------+--------------+-----------+
| CustomerId | CustomerName | isMarried |
+------------+--------------+-----------+
| 1          | Chris        | 1         |
| 2          | Robert       | 1         |
| 3          | David        | 1         |
| 4          | Mike         | 1         |
| 5          | Carol        | 1         |
| 6          | Bob          | 1         |
+------------+--------------+-----------+
6 rows in set (0.00 sec)

  1. MySQLの単一の列値のみを更新します

    まずテーブルを作成しましょう- mysql> create table DemoTable1605    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(20),    -> StudentCountryName varchar(20)    -> ); Query OK, 0 rows affected (0.48 sec) 挿入

  2. MySQLの最後に特定の値を並べ替える方法は?

    これには、ORDERBYを使用できます。テーブルを作成しましょう- mysql> create table demo57 −> ( −> id int not null auto_increment primary key, −> full_name varchar(20) −> ); Query OK, 0 rows affected (1.60 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo57(full_name) valu