부울 값 간의 SQL 비교로 인해 예상치 못한 결과가 발생할 수 있음
<p>대부분의 SQL 데이터베이스가 다음과 같은 결과를 제공하는 이유는 무엇입니까? </p>
<pre class="brush:php;toolbar:false;">FALSE 선택 < FALSE / 0 확인
TRUE < FALSE 선택 - FALSE / 0 확인
NOT(FALSE) < FALSE -- TRUE / 1 무엇을 선택합니까?
NOT(TRUE) < FALSE -- TRUE / 1 무엇을 선택합니까? ? </pre>
<p>다시 확인해 보세요: </p>
<pre class="brush:php;toolbar:false;">SELECT NOT(TRUE) = FALSE -- TRUE / 1 확인;
SELECT NOT(FALSE) = TRUE; -- TRUE / 1 확인</pre>
<p>Postgres에서는 다음도 확인할 수 있습니다.</p>
<pre class="brush:php;toolbar:false;">SELECT pg_typeof(TRUE), pg_typeof(NOT(FALSE));
-- 부울</pre>
<p>저는 PostgreSQL, SQLite3, MariaDB를 사용해 보았지만 모두 예상치 못한 동일한 결과를 얻었습니다. </p><p>
<strong>내가 무엇을 놓치고 있나요? </strong></p>