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

MYSQL:표현식 4개 중 3개와 같이 일치하는 결과를 가져올 수 있습니까?

<시간/>

CASE 문을 사용하여 일부 표현식과 일치하는 결과를 얻을 수 있습니다-

SELECT *FROM yourTableNameWHERE CASE WHEN yourColumnName1 =yourValue1 THEN 1 ELSE 0 END + CASE WHEN yourColumnName2 =yourValue2 THEN 1 ELSE 0 END + CASE WHEN yourColumnName3 =yourValue3 THEN 1 ELSE 0 END + . .CASE WHEN yourColumnNameN =yourValueN THEN 1 ELSE 0 END> =3;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> 테이블 생성 UserInformation -> ( -> Id int NOT NULL AUTO_INCREMENT, -> FirstName varchar(20), -> LastName varchar(20), -> Age int, -> Marks int, -> PRIMARY KEY( Id) -> );쿼리 OK, 영향을 받는 행 0개(0.58초)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into UserInformation(FirstName,LastName,Age,Marks) values('John','Smith',22,89);Query OK, 영향을 받는 1행(0.12초)mysql> UserInformation(FirstName, LastName,Age,Marks) values('Carol','Taylor',21,80);Query OK, 영향을 받는 1개 행(0.19초)mysql> insert into UserInformation(FirstName,LastName,Age,Marks) values('John' ,'Doe',24,81);쿼리 확인, 1행 영향(0.14초)mysql> Insert into UserInformation(FirstName,LastName,Age,Marks) values('David','Miller',29,99);Query OK, 1개의 행이 영향을 받았습니다(0.15초)mysql> insert into UserInformation(FirstName,LastName,Age,Marks)values('Mitchell','Johnson',22,65);Query OK, 1개의 행이 영향을 받았습니다(0.13초) 

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> 선택 * from UserInformation;

다음은 출력입니다.

+----+-----------+----------+------+----+| 아이디 | 이름 | 성 | 나이 | 표시 |+----+-----------+----------+-----+----+| 1 | 존 | 스미스 | 22 | 89 || 2 | 캐롤 | 테일러 | 21 | 80 || 3 | 존 | 미상 | 24 | 81 || 4 | 데이비드 | 밀러 | 29 | 99 || 5 | 미첼 | 존슨 | 22 | 65화 (0.00초)

다음은 일부(전부는 아님) 표현식과 일치하는 레코드를 가져오는 쿼리입니다. 쿼리는 다음과 같습니다-

mysql> select *from UserInformation -> if FirstName ='Mitchell'일 때 1 else 0 end + -> LastName ='Johnson'일 때 1 else 0 end + -> case when FirstName ='Mitchell' then 1 else 0 end + -> 경우 Marks =67이고 1이면 0 end> =3;

다음은 출력입니다-

+----+-----------+----------+------+----+| 아이디 | 이름 | 성 | 나이 | 표시 |+----+-----------+----------+-----+----+| 5 | 미첼 | 존슨 | 22 | 65화 (0.00초)