在存储过程中如何使用like??

qixiang_nj 2006-03-02 10:06:39
我想实现模糊查询,在存储过程中用了类似下面的语句:
select * from table A where b like '%'+key+'%'
可以以“北京”搜索搜索出相应的结果,可我想以类似“北京 上海 天津”来搜索,却不能出现希望的结果。
望指教!
...全文
396 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpsinz 2006-03-03
  • 打赏
  • 举报
回复
可以用变量来作为条件吗?
比如执行这个存储过程时,指定like '%' + @city + '%'
这样应该也可以吧
aywrenyue 2006-03-03
  • 打赏
  • 举报
回复
学习
zlp321002 2006-03-03
  • 打赏
  • 举报
回复
--例子:你稍微修改下。
Declare @keyWord varchar(2000)
set @keyWord='南京+上海'
select '字段 like ''%'+replace(@keyWord,'+','%'' And 字段 like ''%')+'%'''

--存储过程
ALTER Proc P_Test
(
@keyWord varchar(200)
)
as
begin
declare @s varchar(8000)
set @s=''
select @s='jianjie like ''%'+replace(@keyWord,'+','%'' And jianjie like ''%')+'%'''
Exec('select * from tablea where '+@s+' order by jiage asc')
end
ReViSion 2006-03-02
  • 打赏
  • 举报
回复
同意楼上
要不就处理一下条件
zlp321002 2006-03-02
  • 打赏
  • 举报
回复
--1:给你一个全文索引的写法:
SELECT *
FROM table
WHERE CONTAINS(b, '"*北京*" OR "*上海*" OR "*天津*"')
--2:普通SQL,就用Replace 处理一下,拼成 b like '%北京%' or b like '%上海%' or b like '%天津%'

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧