2014-03-28 3 views
0

나는 테이블 행을 업데이트 할 위치 : 어느 statement1 is true 또는 statement2 is true 그리고 그 중 하나가 statement3 is also true는, 해당하는 독립적.유효한 SQL입니까?

이 것이이 SQL 문을 작성하는 올바른 방법일까요?

$upadte = "UPDATE table SET 
    header = 'value' 
    WHERE (statment1 = 'true' OR statment2 = 'true') AND statement3 = 'true'"; 
+1

실행 결과를 Google에 알려주세요. –

+0

은 statement1,2이고 모든 열 이름은 3입니까? –

+2

'statement1'이'varchar' (또는 다른 문자 유형) 타입의 컬럼이라면 이것은 괜찮을 것입니다. 네가 시도했을 때 무슨 일이 있었 니? –

답변

0

이 예 SQL은 어디 부분에 정확하지만 나는이 '진정한'없는 사실 생각합니다 " '"문자열 expresion보다는 부울로 해석됩니다'가에 싸여 경우 때문에 '. (A OR B)는 A 또는 B가 참이고 참인 경우 참을 리턴합니다. 이 조건은 먼저 괄호 때문에 검사됩니다. 그러면 thir statetment가 점검되고 true이면 완전한 표현식이 true를 리턴합니다.

$upadte = "UPDATE table SET 
    header = 'value' 
    WHERE (statment1 = true OR statment2 = true) AND statement3 = true"; 
+0

모든 DBMS가 '부울'데이터 형식을 지원하는 것은 아닙니다. 따라서 ''true ''가 OP가 사용하는 DBMS에 대한 올바른 방법 일 수 있습니다. –

+1

부울 유형이 없으면 '조건 = 1'이 '조건 ='참 '보다 가능성이 높습니다. –

관련 문제