2011-03-21 2 views
1

다음과 같은 쿼리가 있습니다 :mysql : value는 "null"일 수 있지만 반드시 "specific_value"여야합니다.

SELECT group.active, group.desc, 
group.group_id, hide_group.hide, 
hide_group.user_id 
FROM group 
LEFT JOIN hide_group ON 
    group.group_id=hide_group.group_id 
WHERE group.active=1 
AND hide_group.user_id != 'test' 
OR hide_group.user_id IS NULL 
ORDER BY hide_group`.`user_id` DESC 

이것은 어떤 이유로 활성 행을 완전히 무시합니까? 내가

을 제거하면

및 hide_group.user_id! = 'test'

계정에 활성 = 1이 걸리지 만 올바른 값을 반환하지 않습니다. 첫 번째 쿼리를 검사하면 활성 상태가 고려되면 모든 것이 정상입니다. 도움!

답변

6

"and"와 "or"를 함께 사용하는 경우 올바른 방법으로 괄호를 사용하십시오.

+0

도움이되지 것입니다. 정말 고맙습니다! – WraithLux

+0

반갑습니다. 그것은 발생할 수 있습니다 :) –

0

테이블 이름 group, 필드 이름 desc 내가 아무것도 내 머리를 잡아 당겨했다 ... 오

관련 문제