在like-function sql

时间:2015-10-21 14:31:26

标签: sql sql-server-2014

我正在努力为我们的客户优化搜索功能的速度和效果。它使用SQL Server 2014在SQL中编码。它允许他们搜索数据库中的用户,并且应该显示其名称包含他们放入的文本的所有用户(例如“john”应该同时显示“john hansen”和“hans johnson”到目前为止它运作良好,除非我们的客户在文本之前或之后放入空格,他们正在搜索(“john”或“john”。在这种情况下,系统什么都不返回.....我们是使用like函数,似乎几乎不可能解决它忽略空格。

这里的例子:

a.name LIKE '%example%' OR b.remark LIKE '%example%'

不可能创建一个与删除空格的名称同步的列,因为我们无权修改数据库本身 - 只有查询。所以我想知道是否有一种方法在应用like函数之前暂时删除列的字符串中的空格但是在同一个select中?或者也许如果有另一种选择?我真的在这里深水,因为这个修改系统的响应时间保持不变甚至改善也很重要......任何想法?

1 个答案:

答案 0 :(得分:3)

您可以使用ltrim(rtrim())

a.name like '%' + ltrim(rtrim('example')) + '%'