有时我们可能需要数据库中匹配特定模式的元组。例如,我们可能希望检索元组以字母“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