내 표는 다음과 같습니다B가 A 또는 (X)이 일치하지만, 반환하지 않습니다 행
SELECT * FROM things WHERE ts_9 IN ("asdewdwedewd") OR ts_11 IN ("asdewdwedewd")
왜 그런 일이 일어날까요?
복사 붙여 넣기하여 DB에 그것을 다시 자유롭게 :
CREATE TABLE `things` (
`a` char(12) NOT NULL DEFAULT '',
`ts_9` decimal(2,0) NOT NULL,
`ts_11` char(1) NOT NULL DEFAULT '',
PRIMARY KEY (`a`),
UNIQUE KEY `a` (`a`));
INSERT INTO `things` (`a`, `ts_9`, `ts_11`) VALUES ('yx', '0', ''), ('xy', '0', '');
내 생각 엔 문자열이 정수로 형 변환되고 있다는 것입니다. – Uueerdo
@Uueerdo 위대한 추측, 고마워! 이것을 피하는 일반적인 예방법이 있습니까? – Basti
제가 생각할 수있는 유일한 것은 문자열을 올바르게 파싱 할 수 없다면 평등과 관련된 표현식에서 숫자와 문자열 유형을 섞어 쓰지 않는 것입니다. – Uueerdo