SQL (

2017-05-05 1 views
2

)에 대해 And (Condition1 또는 Condition2)와 Condition1 또는 Condition2간에 차이가 있습니까? 아래의 두 SQL 문에 차이점이 있습니까?SQL (

SQL 문 제가 모두 문을 실행하고 같은 시간에 결과를 가지고 2

Select Id,Code,Name from tbl_student where IsActive=1 
     And Name like '%'[email protected]+'%' OR Code like '%'[email protected]+'%' 

1

Select Id,Code,Name from tbl_student where IsActive=1 
     And (Name like '%'[email protected]+'%' OR Code like '%'[email protected]+'%') 

SQL 문. 차이가 없다면 상태를 작성하는 더 좋은 방법은 무엇입니까?

감사합니다.

+1

차이가 있습니다. 이를 운영자 우선 순위라고합니다. 이는 일부 사업자가 다른 사업자보다 강하게 결속되어 있음을 의미합니다. –

+0

두 개의 'WHERE' 절에서 논리가 다릅니다. 그들이 동일한 결과를 반환한다면, 이는 사용되는 데이터에 기초한 우연의 일치입니다. –

+0

두 번째 쿼리는 코드가 검색 텍스트와 일치하면 활성화되지 않은 학생을 반환합니다. –

답변

5

이들 두 조건은 상이하다 :

where IsActive=1 And 
     (Name like '%'[email protected]+'%' OR Code like '%'[email protected]+'%') 

where IsActive=1 And Name like '%'[email protected]+'%' OR 
     Code like '%'[email protected]+'%' 

번째는 동등하다 :이다

where (IsActive=1 And Name like '%'[email protected]+'%') OR 
     (Code like '%'[email protected]+'%') 

, IsActive = 1Name 만 비교하지 Code 적용된다.

도덕적 : 귀하의 조건에 괄호를 사용하십시오. 항상 필요한 것은 아니지만 부울 표현식에 익숙해지기 전까지는 이것이 최선의 방법입니다.