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)