특정 사용자에게 속해 있고 condition1이 1이 아니면 condition2가 1이 아닌 한 행을 반환해야하는 SQL 문이 있습니다. 그러나 condition1 또는 condition2가 1 인 상태로 실행하면 행이 여전히 반환됩니다. condition1 OR condition2 또는 둘 다 1이면 그러한 행을 반환하지 않지만 어떤 이유로 두 조건 = 1 인 경우에만 작동하도록 만들려고합니다.
Select * FROM table1
WHERE table1.user = $user
AND (condition1 = 0 OR condition2 = 0)
귀하의 요구 사항이 모순됩니다. 다음은 각각에 대한 몇 가지 솔루션입니다.
특정 사용자에 속하고 condition1이 1이 아니거나 condition2가 1이 아닌 한
condition1 및 condition2가 nullable이 아닌 경우 :
Select * FROM table1
WHERE table1.user = $user
AND (condition1 <> 1 OR condition2 <> 1)
다음과 같은 경우 :
Select * FROM table1
WHERE table1.user = $user
AND (condition1 <> 1 OR condition2 <> 1
OR condition1 IS NULL OR condition2 IS NULL)
condition1 OR condition2 또는 둘 다 1이면 반환하지 않습니다.
nullable이 아님 :
Select * FROM table1
WHERE table1.user = $user
AND condition1 <> 1 AND condition2 <> 1
널 가능 :
Select * FROM table1
WHERE table1.user = $user
AND ((condition1 <> 1 OR condition1 IS NULL)
AND (condition2 <> 1 OR condition2 IS NULL))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다