sql多字段模糊搜索查询方法
我用asp写了一个简单的管理小程序,现在想制作一个模糊查询功能。
想要实现的效果是这样的。
字段:地区 时间 姓名 手机 备注
1 北京 2013 王 1888565 你好
2 南京 2013 张 1333636 我好
3 北京 2013 李 166666 2012年小王
想在程序中输入字符串:“北京 王 2012”
输出:3 北京 2013 李 166666 2012年
查询结果显示记录中所有字段含有字符串片段信息的记录
说白了,就是想把单条记录的字段数据整合后与字符串进行模糊比较。含有就显示。
这里不考虑程序代码如何编写的情况下
sql查询语句该如何写?谢谢
[解决办法]
3个(5个or like '%arg[i]%' )的and组合:
where ( 字段1 like '%arg[1]%' or
字段2 like '%arg[1]%' or
字段3 like '%arg[1]%' or
字段4 like '%arg[1]%' or
字段5 like '%arg[1]%' )
and (字段1 like '%arg[2]%' or
字段2 like '%arg[2]%' or
字段3 like '%arg[2]%' or
字段4 like '%arg[2]%' or
字段5 like '%arg[2]%' )
and (字段1 like '%arg[3]%' or
字段2 like '%arg[3]%' or
字段3 like '%arg[3]%' or
字段4 like '%arg[3]%' or
字段5 like '%arg[3]%' )
未经测试.
[解决办法]
CREATE TABLE tbmulti
(aid int,
地区 varchar(30),
时间 varchar(30),
姓名 varchar(30),
手机 varchar(30),
备注 varchar(30)
)
insert into tbmulti
select 1,N'北京',N'2013',N'王',N'1888565',N'你好'
union all
select 2,N'南京',N'2013',N'张',N'1333636',N'我好'
union all
select 3 ,N'北京',N'2013',N'李',N'166666',N'2012年小王'
select * from tbmulti
where
(
地区 like'%北京%'or
时间 like'%北京%'or
姓名 like'%北京%'or
手机 like'%北京%'or
备注 like'%北京%')
and
(
地区 like'%王%'or
时间 like'%王%'or
姓名 like'%王%'or
手机 like'%王%'or
备注 like'%王%')
and
(
地区 like'%2012%'or
时间 like'%2012%'or
姓名 like'%2012%'or
手机 like'%2012%'or
备注 like'%2012%')