在ms-access数据库中使用regex进行SQL查询

时间:2010-02-07 12:53:12

标签: c# sql database regex ms-access

我正在使用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

感谢您前进!

3 个答案:

答案 0 :(得分:0)

您的任务可以通过“%”+ SetA +“run”+ SetB +“%”来解决 其中setA所有符号在短语之前允许(例如[a-z] *,以防止标记结束,因此%不起作用),setB - 所有允许的分隔符(例如[^ a-z0-9])。
我恐怕你无法用%,_,[]来定义SetA 所以你应该简化你的任务。

答案 1 :(得分:0)

答案 2 :(得分:0)

这在SQL中没有多大帮助,但Access可以使用文件系统对象的RegExp支持。鉴于您的数据存储方式,这可能不会太慢​​,因为您的LIKE匹配无论如何都不会使用任何索引。