在Microsoft SQL中使用“不喜欢”而没有任何%符号并使用不等号运算符<>是否有任何实际区别?例如:Microsoft SQL'不喜欢'vs <>
if exists (select * from table_name where column_name not like @myvariable)
或
if exists (select * from table_name where column_name not like 'myvalue')
与
if exists (select * from table_name where column_name <> @myvariable)
或
if exists (select * from table_name where column_name <> 'myvalue')
我发现我一直在使用不喜欢的习惯(它的速度更快输入阅读我自己的代码时感觉更直观)和我想知道是否有可能会导致不同于不平等的行为。我在其他问题中读到'like'比'equals'慢,但我更关心比较的结果。 进行比较时,我几乎总是使用varchar数据类型。
谢谢,但我想知道具体是否有任何区别时,**没有**通配符被使用。 – 2013-04-30 17:56:08
是的,一个像必须评估通配符的字符串。在检查它们之前,它不知道没有通配符。如果没有通配符,那么从我所看到的将它视为<>。 – Paparazzi 2013-04-30 17:59:57
我想我会试图打破我的(坏)习惯,以避免sl sl。 – 2013-05-02 18:10:27