혼자 일할 때 가끔씩 발생하는 성가신 문제 중 하나입니다. 나는 완전히 대답은 간단 하나가 될 것으로 기대하고 있습니다 :MySQL Join Query - OR OR 무시됨
그래서 같은 쿼리가 :
SELECT * FROM table_a
LEFT JOIN table_b ON table_a.order_id = table_b.order_id
WHERE (table_a.column_a='string' OR table_b.column_b='string' OR table_b.column_c='string')
group by column_d
이 쿼리는 모든 행을 반환하고 쿼리의 WHERE 부분을 무시하는 것 같다됩니다 ... 단, 그렇지 않은 경우는 예외입니다. OR 부품을 제거하면 예상대로 작동합니다.
SELECT * FROM table_a
LEFT JOIN table_b ON table_a.order_id = table_b.order_id
WHERE (table_a.column_a='string')
group by column_d
생각/명백한 문제?
업데이트
내 특정 문제가 내가 정수 컬럼에 대한 문자열을 평가하는 것을했다,이 알 수없는 평가 문을 의미했다. 이제 코드가 위와 같지만 문자열이 숫자 인 경우에만 해당 특정 OR을 추가합니다.
포스트 예제 데이터 널 아니었다면 체크하는 조건을 추가하여이 문제를 해결할 수 않습니다 , 예상 결과 및 실제 결과. 검색어에 명백한 문제가 없으며 데이터에 문제가 있습니다. – lanzz
건배 란제리, 수락 가능 응답보기 –