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

동일한 열에서 다른 값을 선택하고 MySQL을 사용하여 다른 열에 표시하는 방법은 무엇입니까?

<시간/>

조건에 따라 다른 값을 선택하려면 CASE 문을 사용하십시오. 먼저 테이블을 생성하겠습니다 -

mysql> 테이블 생성 DemoTable( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(40),Score int);쿼리 OK, 영향을 받은 행 0개(0.54초)

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

mysql> insert into DemoTable(Name,Score) values('Chris',45);Query OK, 영향을 받는 1개 행(0.24초)mysql> insert into DemoTable(Name,Score) values('David',68);Query OK, 1행 영향(0.14초)mysql> DemoTable(Name,Score) values('Robert',89)에 삽입;Query OK, 1행 영향(0.15초)mysql> DemoTable(Name,Score)에 삽입 values('Bob',34);쿼리 OK, 1행 영향(0.11초)mysql> DemoTable(Name,Score)에 삽입 values('Sam',66);Query OK, 1행 영향(0.22초) 

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

mysql> DemoTable에서 *선택;

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

+----+--------+-------+| 아이디 | 이름 | 점수 |+----+--------+-------+| 1 | 크리스 | 45 || 2 | 데이비드 | 68 || 3 | 로버트 | 89 || 4 | 밥 | 34 || 5 | 샘 | 66 |+----+--------+-------+5행 세트(0.00초)

다음은 동일한 열에서 다른 값을 선택하는 쿼리입니다 -

mysql> select Score, Score <40 일 때 Score 는 ' Score Less than 40' , Score 60 ~ 70 이면 Score 가 'Score 60 ~ 70 ' , Score> 80 이면 Score DemoTable에서 '80점보다 큰 점수'로 종료,

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

+-------+--------------------+----------------- ------+-----------------------+| 점수 | 40점 미만 | 60에서 70 사이의 점수 | 80점 이상 |+-------+--------------------+----------------- -----------+--------------------------+| 45 | 널 | 널 | 널 || 68 | 널 | 68 | 널 || 89 | 널 | 널 | 89 || 34 | 34 | 널 | 널 || 66 | 널 | 66 | NULL |+-------+--------------------+------------------ ------+-----------------------+5 행 세트, 1 경고(0.03초)