我正在使用C#.Net和ms-access数据库。
我有以下SQL查询:
`Select ... Like "%<aaa>%"+prmPhrase+"%</aaa>%"`
查询正在数据库字段中查找包含xml数据的短语。
查询工作非常快,但它返回了很多错误的结果。我不能只搜索确切的短语,因为我有一个单词边界标记列表:
' ', '-', '.', ':', ',', ';', '/'
例如:
prmPhrase = run
"i run home" -ok
"i.run-home" - ok
"running" - false result - not ok
我需要花费大量时间通过代码提取ok结果,并且只返回ok句子。
我想知道是否有类似正则表达式的东西,或者我可以做更好的查询,只返回没有错误结果的ok结果。
也许这可能会有所帮助:
Search for "whole word match" in MySQL
感谢您前进!
答案 0 :(得分:0)
您的任务可以通过“%”+ SetA +“run”+ SetB +“%”来解决
其中setA所有符号在短语之前允许(例如[a-z] *,以防止标记结束,因此%不起作用),setB - 所有允许的分隔符(例如[^ a-z0-9])。
我恐怕你无法用%,_,[]来定义SetA
所以你应该简化你的任务。
答案 1 :(得分:0)
答案 2 :(得分:0)
这在SQL中没有多大帮助,但Access可以使用文件系统对象的RegExp支持。鉴于您的数据存储方式,这可能不会太慢,因为您的LIKE匹配无论如何都不会使用任何索引。