반응형
다음과 같은 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
반응형
'MySql' 카테고리의 다른 글
MySQL 한 번만 사용되는 동안 "DEFAULT 또는 ON UPDATE 절에 CURRENT_TIMESTAMP가있는 하나의 TIMESTAMP 열만"오류가 발생합니다. (0) | 2021.02.07 |
---|---|
MySQL PHP-MySQL-행 삭제 (0) | 2021.02.07 |
MySQL 테이블이 좋아하는 MySQL 대량 삭제 테이블? (0) | 2021.02.07 |
MySQL Is it possible to restore a MySQL database to a previous state in time? (0) | 2021.02.07 |
MySQL SQL 상태를 처리하는 방법 [HY000]; 오류 코드 [1366]; 잘못된 문자열 값? (0) | 2021.02.07 |
댓글