Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 임시 테이블을 사용하지 않고 열 데이터를 업데이트하시겠습니까?


이를 위해 CASE 문을 사용합니다. 이것은 임시 테이블을 사용하지 않고도 작동합니다. 먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable -> ( -> UserName varchar(100), -> UserStatus varchar(100) -> );쿼리 OK, 영향을 받는 행 0개(0.74초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> DemoTable 값에 삽입('John','Active');쿼리 OK, 영향을 받는 1행(0.29초)mysql> DemoTable 값에 삽입('Chris','Inactive'), 쿼리 OK, 1행 영향을 받은(0.19초)mysql> DemoTable 값에 삽입('Bob','비활성');쿼리 OK, 영향을 받는 1행(0.32초)mysql> DemoTable 값에 삽입('Robert','Active'), 쿼리 확인, 영향을 받는 행 1개(0.15초)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> DemoTable에서 *선택;

출력

이것은 다음과 같은 출력을 생성합니다 -

+----------+------------+| 사용자 이름 | 사용자 상태 |+----------+------------+| 존 | 활성 || 크리스 | 비활성 || 밥 | 비활성 || 로버트 | 활성 |+----------+------------+세트의 행 4개(0.00초)

다음은 CASE를 사용하여 열 데이터를 업데이트하는 쿼리입니다 -

mysql> update DemoTable -> set UserStatus=CASE UserStatus WHEN 'Inactive' THEN 'Active' ELSE 'Inactive' END;Query OK, 영향을 받는 4개 행(0.28초) 일치하는 행:4개 변경됨:4개 경고:0 

테이블 레코드를 다시 한 번 확인합시다 -

mysql> DemoTable에서 *선택;

출력

이것은 다음과 같은 출력을 생성합니다 -

+----------+------------+| 사용자 이름 | 사용자 상태 |+----------+------------+| 존 | 비활성 || 크리스 | 활성 || 밥 | 활성 || 로버트 | 비활성 |+----------+------------+세트의 행 4개(0.00초)