我在 TableA 中有以下数据...
ID | Text
---------------------------------------------
1 | let's find this document
2 | docments are closed
...如果我执行以下选择...
select Text from TableA where Text like '%doc%';
...我似乎得到了一个奇怪的结果。两行都返回。有了这个选择,它不仅应该返回第 1 行吗?我本来以为..
select Text from TableA where Text like 'doc%';
...会只返回第 2 行。我错过了什么吗?
作为我的搜索工具的一部分,我正在尝试对这些数据运行 3 次单独的搜索。第一个匹配是在字符串的开头查找指定的模式“doc”,其次,我的下一个匹配在字符串的末尾查找相同的模式,第三,确定该模式是否出现在文本中的任何位置- 所以可以有文字围绕它。理想情况下,第一次搜索只会匹配第 2 行,第二次搜索不会返回任何结果,第三次搜索只会返回第 1 行。
这样做的原因是我想尝试了解模式如何匹配字符串。可以更容易地阅读结果,以了解给定行的模式匹配 (a) 的开头,(b) 的结尾,(c) 中间的任何位置。
曾考虑使用正则表达式,但我的数据是 unicode。