【问题标题】:When to write 'like' insteance of just '=' is SQL什么时候只写'='的'like'实例是SQL
【发布时间】:2017-11-11 12:43:47
【问题描述】:

在 Sybase 中我看到的代码如下:

     select * from sys.SYSCOLUMNS where tname like 'table_name';

和结果一模一样

    select * from sys.SYSCOLUMNS where tname = 'table_name';

他们为什么要写“=”的“喜欢”实例

我知道我们可以使用 like 和 % 来检查模式:

select * from table_name where column_name like 'temp%';

但是当不是模式匹配时,我看不到这样做的意义。

有谁可以解释他们为什么这样做?

【问题讨论】:

  • 想不出理由,除了个人喜好。这两个语句在功能上没有区别。
  • 值得注意的是,这种行为是特定于数据库的,例如,SELECT 'X ' = 'X', 'X ' LIKE 'X'; 在 MySQL 中不相等。

标签: sql tsql sybase


【解决方案1】:

正如@HoneyBadger 所指出的,在这种情况下(静态字符串),“like”和“=”在功能上是相同的。

如果编码人员很少使用“=”,则可能是某种个人偏好。

如果编码人员混合使用“like”和“=”,或者通常使用“=”,则可能就像编码人员最初使用通配符测试和/或测试 NULL(在 ANSINULL =true),无论出于何种原因决定切换到静态字符串,并简单地将“like”更改为“=”。如果他们从其他地方剪切粘贴代码 sn-p,用静态字符串替换通配符字符串,并掩盖将 'like' 更改为 '=' 的类似解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-13
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多