【发布时间】:2016-02-12 15:52:42
【问题描述】:
是的,我知道这是一件很糟糕的事情,全文索引可以解决我的所有问题,但是它在不允许全文索引的 Azure v11 DB 上运行,并且升级不是一个选项时间。
我想要实现的是要输入的搜索字符串,然后将其与字符串列匹配。但是传入的字符串可能会以错误的顺序出现。
举个例子
SELECT value
FROM table
WHERE value like '%This% %Is% %A% %String%'
工作正常,因为搜索字符串是有序的,但有时我被传递的是 '%This% %String% %Is% %A%'
导致;
SELECT value
FROM table
WHERE value like '%This% %String% %Is% %A%'
这将无法返回任何内容。当字符串可以以任何顺序出现时,是否可以应用like?
我发现的任何其他 SO 帖子都归结为使用全文索引,所以很可能我做了一些愚蠢的事情(除了在没有全文索引的情况下尝试这个)或者这是不可能的。
如果有人能提供帮助,我将不胜感激。
快速编辑,因为我认为我没有彻底解释自己;
作为示例,我匹配的数据(仍然使用 '%This% %String% %Is% %A%' 搜索参数作为示例)将是这样的;
- '这是我要返回的字符串'
- '这是一个小数'
- '这个整数是一个'
- '这是一个小数'
- '这是字符串'
在这些示例中,我只想返回第一条记录“这是我要返回的字符串”,因此它类似于以下答案,除了它需要使用 AND 完成并且输入会有所不同长度。例如输入可以是
- '%This% %String% %Is% %A%'
- '%This% %Is% %A% %String%'
- '%This% %String%'(将返回两条记录)
- '%This% %String% %A%'
谢谢,
尼尔
【问题讨论】:
标签: string tsql azure sql-like