【发布时间】:2021-11-23 17:32:10
【问题描述】:
我想在 SQL 的“LIKE”函数中使用正则表达式来搜索包含特定单词的字符串。
例如,假设我有一个文件夹名称列表(来自笔记本电脑),我想搜索所有包含“旧”一词的文件夹。我想要的结果示例:
| Folder Name |
|---|
| Old Templates |
| old Archives |
| temp - old |
但是,当我使用:
WHERE folder LIKE '%Old%'
显然,我得到以下结果:
| Folder Name |
|---|
| Old Templates |
| old Archives |
| temp - old |
| Harold Jenkins |
| Jerry Oldfield |
我只想使用正则表达式在字符串的任何阶段搜索单词“Old”,但它只搜索 3 个字符并检索完整的字符串。
只是想知道是否有人可以帮助我 - 谢谢!
【问题讨论】:
-
我不明白这个问题。你能展示你想要的结果吗?
-
顺便说一句,
LIKE不是正则表达式。正则表达式匹配REGEX或RLIKE。 -
你是在问如何只匹配整个单词,而不是部分单词,所以它不会匹配
harold? -
@Barmar 感谢您的回复。好吧,有人告诉我,例如,如果您使用“[a-z]”打开,则可以在 LIKE 语句中包含 RegEx。基本上,顶部的表格是我想要的结果,但我得到的是底部表格的结果。例如,我想搜索“老”这个词,但不让它在“哈罗德”中返回“老”。
-
@Barmar 是的,这就是我想说的,但我做得不太好哈哈