什么时候写 'like' 只是 '=' 的实例是 SQL
When to write 'like' insteance of just '=' is SQL
在 Sybase 中我看到代码为:
select * from sys.SYSCOLUMNS where tname like 'table_name';
结果与
完全一样
select * from sys.SYSCOLUMNS where tname = 'table_name';
他们为什么写 "like" 实例“=”
我知道我们可以使用 like 和 % 来检查模式:
select * from table_name where column_name like 'temp%';
但我看不出在没有模式匹配的情况下这样做有什么意义。
有谁能解释一下他们为什么要这样做?
正如@HoneyBadger 所指出的,在这种情况下(静态字符串)'like' 和 '=' 在功能上是相同的。
如果编码人员很少使用“=”,则可能是某种个人偏好。
如果编码人员混合使用 'like' 和“=”,或者通常使用“=”,它可能就像编码人员最初使用通配符 and/or 进行测试一样简单测试 NULL(在 ANSINULL=true 下),无论出于何种原因决定切换到静态字符串,并简单地掩盖了将 'like' 更改为 '='。如果他们从其他地方剪切粘贴代码片段,用静态字符串替换通配符字符串,并掩饰将 'like' 更改为 '='.
,则类似的解释
在 Sybase 中我看到代码为:
select * from sys.SYSCOLUMNS where tname like 'table_name';
结果与
完全一样 select * from sys.SYSCOLUMNS where tname = 'table_name';
他们为什么写 "like" 实例“=”
我知道我们可以使用 like 和 % 来检查模式:
select * from table_name where column_name like 'temp%';
但我看不出在没有模式匹配的情况下这样做有什么意义。
有谁能解释一下他们为什么要这样做?
正如@HoneyBadger 所指出的,在这种情况下(静态字符串)'like' 和 '=' 在功能上是相同的。
如果编码人员很少使用“=”,则可能是某种个人偏好。
如果编码人员混合使用 'like' 和“=”,或者通常使用“=”,它可能就像编码人员最初使用通配符 and/or 进行测试一样简单测试 NULL(在 ANSINULL=true 下),无论出于何种原因决定切换到静态字符串,并简单地掩盖了将 'like' 更改为 '='。如果他们从其他地方剪切粘贴代码片段,用静态字符串替换通配符字符串,并掩饰将 'like' 更改为 '='.
,则类似的解释