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

특정 필드/행을 제거하고 MySQL에서 다른 레코드를 표시하시겠습니까?


이를 위해 MySQL에서 CASE WHEN 문을 사용합니다. 테이블을 만들어 봅시다 -

mysql> create table demo47
−> (
−> first_name varchar(20),
−> last_name varchar(20)
−> );
Query OK, 0 rows affected (1.57 sec)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오 -

mysql> insert into demo47 values('John','Smith');
Query OK, 1 row affected (0.18 sec)

mysql> insert into demo47 values('David','Miller');
Query OK, 1 row affected (0.11 sec)

mysql> insert into demo47 values('John','Doe');
Query OK, 1 row affected (0.12 sec)

mysql> insert into demo47 values('Chris','Brown');
Query OK, 1 row affected (0.12 sec)

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

mysql> select *from demo47;

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

+------------+-----------+
| first_name | last_name |
+------------+-----------+
| John       | Smith     |
| David      | Miller    |
| John       | Doe       |
| Chris      | Brown     |
+------------+-----------+
4 rows in set (0.00 sec)

다음은 MySQL에서 특정 필드/행을 제거하고 다른 레코드를 표시하는 쿼리입니다.

mysql> select case when first_name= 'John' then last_name else first_name end Result
−> from demo47
−> where 'John' in (first_name,last_name);

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

+--------+
| Result |
+--------+
| Smith  |
| Doe    |
+--------+
2 rows in set (0.00 sec)