SQL 中的 And (Condition1 or Condition2) 与 And Condition1 or Condition2 之间有什么区别吗
Is there any difference between And (Condition1 or Condition2) vs And Condition1 or Condition2 in SQL
我想知道。以下两个 SQL 语句之间有什么区别吗?
SQL 语句 1
Select Id,Code,Name from tbl_student where IsActive=1
And (Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')
SQL 声明 2
Select Id,Code,Name from tbl_student where IsActive=1
And Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%'
我同时执行了这两个语句并得到了结果。如果没有区别那么condition的写法怎么写比较好?
谢谢。
这两个条件不同:
where IsActive=1 And
(Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')
where IsActive=1 And Name like '%'+@Searchtxt+'%' OR
Code like '%'+@Searchtxt+'%'
第二个相当于:
where (IsActive=1 And Name like '%'+@Searchtxt+'%') OR
(Code like '%'+@Searchtxt+'%')
也就是说,IsActive = 1
仅适用于 Name
比较而不适用于 Code
。
道德:使用括号表示您的条件。它们可能并不总是必需的,但在您真正熟悉布尔表达式之前,这是最好的方法。
我想知道。以下两个 SQL 语句之间有什么区别吗?
SQL 语句 1
Select Id,Code,Name from tbl_student where IsActive=1
And (Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')
SQL 声明 2
Select Id,Code,Name from tbl_student where IsActive=1
And Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%'
我同时执行了这两个语句并得到了结果。如果没有区别那么condition的写法怎么写比较好?
谢谢。
这两个条件不同:
where IsActive=1 And
(Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')
where IsActive=1 And Name like '%'+@Searchtxt+'%' OR
Code like '%'+@Searchtxt+'%'
第二个相当于:
where (IsActive=1 And Name like '%'+@Searchtxt+'%') OR
(Code like '%'+@Searchtxt+'%')
也就是说,IsActive = 1
仅适用于 Name
比较而不适用于 Code
。
道德:使用括号表示您的条件。它们可能并不总是必需的,但在您真正熟悉布尔表达式之前,这是最好的方法。