3

我有列store_name( varchar)。在该列中,我有类似prime sport, best buy... 的条目,并带有空格。但是当用户键入没有空格的连接字符串时primesport,我需要显示结果prime sport。我怎样才能做到这一点?请帮我

4

3 回答 3

3
SELECT *
FROM TABLE
WHERE replace(store_name, ' ', '') LIKE '%'+@SEARCH+'%' OR  STORE_NAME LIKE '%'+@SEARCH +'%'
于 2013-11-13T05:52:35.680 回答
1

您是否尝试过使用replace()

您可以替换查询中的空格,然后使用like

SELECT * FROM table WHERE replace(store_name, ' ', '') LIKE '%primesport%'

它适用于使用“primesoft”查询“prime soft”之类的条目

或者你可以使用正则表达式。

于 2013-11-13T05:38:11.073 回答
1

好吧,我没有太多想法,甚至我正在寻找它。但可能是我所知道的适合你,你可以通过执行不同类型的字符串操作来实现这一点:

Mike can be Myke or Myce or Mikke or so on.
Cat an be Kat or katt or catt or so on.

为此,您应该编写一个函数来生成许多可能的字符串,然后使用所有这些形成一个 SQL 查询,并查询数据库。

一种类似的搜索被称为Soundex Search from Oracleand Soundex Search from Microsoft。看看它。这可能有效。

并总体利用 和 之类的upper功能lower

于 2013-11-13T05:51:10.973 回答