【发布时间】:2016-03-05 20:06:51
【问题描述】:
当我运行这个查询时:
Select * from Table1 Where Column1 Like 'aaa%' --3 Result
Select * from Table1 Where Column1 Like 'a%' --3 Result
Select * from Table1 Where Column1 Like 'A%' --3 Result
但是当我跑步时
Select * from Table1 Where Contains(Column1 ,'aaa') --3 Result
Select * from Table1 Where Contains(Column1 ,'a') --0 Result
Select * from Table1 Where Contains(Column1 ,'A') --0 Result
CONTAINS可以搜索:As Per MSDN
- 一个词或短语。
- 单词或短语的前缀。
- 一个词靠近另一个词。
这是否意味着Contains 不能搜索字母?
如果是,那怎么办?
编辑2:
declare @param as varchar(20)='a'
select * from table1 where Contains(column1,@param)
这是有效的,
declare @param as varchar(20)='"a*"'
select * from table1 where Contains(column1,@param)
但是,这不是
declare @param as varchar(20)='a'
select * from table1 where Contains(column1,@param+'*')
还有,
select * from table1 where Contains(column1,'"'+@param+'*"')
【问题讨论】:
-
您需要在搜索字符串中包含双引号。查看我的答案链接到的 MSDN 页面上的示例。这些应该可以帮助你。
标签: sql sql-server contains sql-like