본문 바로가기
MySql

MySQL SELECT WHERE EQUALS syntax

by 베이스 공부 2021. 2. 7.
반응형

다음과 같은 Participant라는 MySQL 데이터베이스 테이블이 있습니다.

(idParticipant) - (firstName) - (secondName) - (gender) - (dob)

118   John     Dunne         m    1944-04-01

117   Mary     Delaney       f    1955-05-03

116   Adam     Bermingham    m    1920-01-01

115   Eamonn   Reilly        m    1987-03-19

114   Aaron    Duane         m    1990-07-08

119   Sarah    Calvin        f    1977-07-17

이 쿼리를 사용할 때 :

SELECT * FROM `Participant` WHERE idParticipant = 118 OR 119;

다음과 같은 결과를 얻어야한다고 생각합니다.

118  John    Dunne       m    1944-04-01

119  Sarah   Calvin      f    1977-07-17

그러나 대신 전체 테이블을 반환합니다. MySQL 구문에서 어디가 잘못되고 있습니까?

 

해결 방법

 

WHERE idParticipant IN (118, 119); 을 사용해야합니다.

내 생각에 MySQL은 119의 값을 부울 참 값으로 암시 적으로 변환하므로 WHERE idParticipant = 118 OR TRUE; , 따라서 모든 행을 포함합니다. 동등성이 먼저 평가되고 부울 OR 이 이어집니다.

 

참조 페이지 https://stackoverflow.com/questions/11036422

 

 

반응형

댓글