주어진 매개 변수가있는 경우 MySQL 문 검사를 실행하는 방법을 찾고 있습니다. 내가 기억하는 바로는이를 달성하기 위해 오라클에서 다음을 할 수 있습니다.매개 변수가 null 인 경우 MySQL 구문 검사
select s.* from Site s
where s.study = :study
and (:enabled is null or s.enabled = :enabled)
역시 MySQL에서 가능한 모든 기능을 제공합니까? 동일한 코드가 오류없이 실행되지만 레코드를 반환하지 않습니다.
내 목표는 내 Java 코드에서 여러 개의 lfs 및 elses를 피하는 것입니다.
select s.* from Site s
where s.study = :study
과 같은 매개 변수가 null가 아닌 경우 : enabled 매개 변수가 null 때 쿼리가 보이는 방식을 작동해야
select s.* from Site s
where s.study = :study
and s.enabled = :enabled
나는 하나에 그렇게 할 불행하게도 그것이 다에 크게 의존
SELECT s.* from Site s
WHERE s.study = "some_study"
AND (s.enabled IS NULL OR s.enabled = '' OR s.enabled = "enabled");
'AND (s.enabled IS NULL 또는 s.enabled = : enabled) ' –
': enabled is null'은 무의미합니다. DB를 사용하지 않고 클라이언트 측 코드에서이를 쉽게 확인할 수 있습니다. ': enabled' 값은 당신이 공급하는 값입니다. 당신은's.enabled'를 테스트 할 필요가 있다는 것을 의미하는 null 필드에 있는지 확인하고 싶습니다. –
모든 가능한 경우에 대해 단 하나의 쿼리 만 있다고 상상해보십시오. 아니야, elses. 아주 유용합니다. 목표는 매개 변수를 확인하고 매개 변수가 실제로 null 인 경우 해당 쿼리의 전체 행을 비활성화하는 것입니다. – smoczyna