【问题标题】:SQL Difference Between "a%" and "a%_"SQL "a%" 和 "a%_" 的区别
【发布时间】:2022-01-12 15:07:32
【问题描述】:

我一直在寻找好的用例以及使用 LIKE 和 = 我遇到关于 LIKE 的问题之间的区别。

既然 LIKE "_r%" 是指那些以 'r' 作为第二个字符的人,那么假设 "r%_" 不成立吗? 表示第一个字符为 'r' 的那些,本质上使其功能相同与“a%”。

我之所以这么问,是因为我们的演讲幻灯片说的是相反的,我不确定我是否错了。我还运行了这个 SQL 测试程序 (https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_like_underscore) 来亲眼看看,这也证明了我的观点。

祝你有美好的一天。

【问题讨论】:

  • % 表示零或多个,_ 表示正好一个
  • 尝试您的查询,但过滤'%deli%n%_',或'%deli%n%'
  • 我认为这个问题是 ORACLE 特有的,并非所有 DBMS 都通用

标签: sql database


【解决方案1】:

不同之处在于a% 将匹配以a 开头的任何内容,包括a 本身(% 匹配零、一个或多个字符),而a%_ 将匹配以开头的任何内容a,但 必须 后跟至少一个其他字符(_ 只匹配一个字符)。

【讨论】:

    【解决方案2】:

    不,r%_r% 实际上并不是同一个意思。第一个版本r%_ 将匹配以r 开头的任何字符串,后跟零个或多个任意字符,后跟任意单个字符。此模式将匹配raran,但它 匹配单个r。另一方面,模式r% 将匹配r,因为% 允许在前导r 后面有零个字符。

    【讨论】:

      猜你喜欢
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 2019-08-27
      相关资源
      最近更新 更多