SQL | LIKE

有时我们可能需要数据库中匹配特定模式的元组。例如,我们可能希望检索元组以字母“y”开头、或以“b”开头、以“l”结尾的所有列,或者更复杂、更严格的字符串模式。这就是LIKE子句的作用所在,它通常与SQL中的where子句结合在一起。

null

有两种通配符用于过滤结果:

  • %:用于匹配零个或多个字符。(可变长度)
  • _:用于恰好匹配一个字符。(固定长度)

以下是使用LIKE子句进行模式匹配的规则:

图案 意思
“a%” 匹配以“a”开头的字符串
“%a” 将字符串的结尾与“a”匹配
“a%t” 匹配以“a”开头、以“t”结尾的字符串。
“%wow%” 在任意位置匹配包含子字符串“wow”的字符串。
“_wow%” 在第二个位置匹配包含子字符串“wow”的字符串。
“_a%” 匹配第二个位置包含“a”的字符串。
“a_%” 匹配以“a”开头且至少包含两个以上字符的字符串。

例子:

假设我们有关系,供应商。我们想使用LIKE子句测试各种模式:

供应商表:

供应商 名称 住址
S1 模范供应商 德里奥赫拉21-3号
S2 芒果之国 哈里亚纳法里达巴德21号
S3 加拿大商业 6/7,奥赫拉二期,德里
S4 商队商人 德里皮坦普拉2-A酒店
S5 哈里什和儿子们 新南威尔士州古尔冈
S6 Om供应商 哈里亚纳法里达巴德2/1

示例查询和输出:

SELECT SupplierID, Name, Address
FROM Suppliers
WHERE Name LIKE 'Ca%';

输出:

S3 加拿大商业 6/7,奥赫拉二期,德里
S4 商队商人 德里皮坦普拉2-A酒店
SELECT *
FROM Suppliers
WHERE Address LIKE '%Okhla%';

输出:

S1 模范供应商 德里奥赫拉21-3号
S3 加拿大商业 6/7,奥赫拉二期,德里
SELECT SupplierID, Name, Address
FROM Suppliers
WHERE Name LIKE '_ango%';

输出:

S2 芒果之国 哈里亚纳法里达巴德21号

申请: 在地址过滤等情况下,LIKE操作符非常灵活,在这种情况下,我们只知道整个地址的一段或一部分(如地区或城市),并希望基于此检索结果。可以充分利用这些通配符,根据需求生成更好、更经过过滤的元组。

本文由 阿纳尼亚·尤博伊 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享