ASP+SQL2000多条件模糊查询
我想给3个字段条件的模糊查询我现在只写得来查询xingming这一个字段我还有两个字段分别是dizhi和shijian请教前辈们帮我把代码加全,十分感谢!<%xingmi...
我想给3个字段条件的模糊查询 我现在只写得来查询xingming这一个字段 我还有两个字段分别是 dizhi 和 shijian 请教前辈们帮我把代码加全,十分感谢!
<%
xingming=request.form("xingming")
set conn=server.createObject("ADODB.Connection")
conn.open "driver={SQL Server};server=wjx;UID=sa;PWD=123456;database=xxx"
set rs = server.createobject("adodb.recordset")
sql="select * from ooo where xingming like '%"&xingming&"%'"
rs.open sql,conn,1,1
%> 展开
<%
xingming=request.form("xingming")
set conn=server.createObject("ADODB.Connection")
conn.open "driver={SQL Server};server=wjx;UID=sa;PWD=123456;database=xxx"
set rs = server.createobject("adodb.recordset")
sql="select * from ooo where xingming like '%"&xingming&"%'"
rs.open sql,conn,1,1
%> 展开
5个回答
展开全部
LZ 像这种表不满足第一范式 字段多值
有种做法叫 拆分元素
也就是 多值字段转成多行,那么就很好处理了
按你的数据 下面是语句 希望对你有帮助
这里也借助一张数字表 来取得 XX字段','的位置
--创建测试表
CREATE TABLE Test
(
Id int primary key identity(1,1),
title int,
xx varchar(2000),
)
--插入数据
INSERT INTO Test
SELECT 22,'12,23,44,55'
UNION ALL SELECT 22,'122,13,44,55'
UNION ALL SELECT 22,'12,22,43,51'
UNION ALL SELECT 22,'1,13,44,55'
UNION ALL SELECT 22,'12,23,24,25'
UNION ALL SELECT 22,'12,33,44,55'
UNION ALL SELECT 22,'2,3,44,55'
UNION ALL SELECT 22,'23,1,2,3'
--建个数字辅助表
CREATE TABLE Nums
(
NumID int primary key
)
--插入数据
DECLARE @InitNum int
SET @InitNum =1
WHILE @InitNum<=100
BEGIN
INSERT INTO Nums
SELECT @InitNum
SET @InitNum=@InitNum+1
END
--开始查询--mssql的SUBSTRING开始索引是从1开始的
SELECT id,title,xx,numid,SUBSTRING( xx ,numid,CHARINDEX(',',xx+',',numid)-numid )AS '单独元素'
FROM Test JOIN Nums
ON NumID <= LEN(xx)
AND SUBSTRING(','+xx,NumID,1)=','
有种做法叫 拆分元素
也就是 多值字段转成多行,那么就很好处理了
按你的数据 下面是语句 希望对你有帮助
这里也借助一张数字表 来取得 XX字段','的位置
--创建测试表
CREATE TABLE Test
(
Id int primary key identity(1,1),
title int,
xx varchar(2000),
)
--插入数据
INSERT INTO Test
SELECT 22,'12,23,44,55'
UNION ALL SELECT 22,'122,13,44,55'
UNION ALL SELECT 22,'12,22,43,51'
UNION ALL SELECT 22,'1,13,44,55'
UNION ALL SELECT 22,'12,23,24,25'
UNION ALL SELECT 22,'12,33,44,55'
UNION ALL SELECT 22,'2,3,44,55'
UNION ALL SELECT 22,'23,1,2,3'
--建个数字辅助表
CREATE TABLE Nums
(
NumID int primary key
)
--插入数据
DECLARE @InitNum int
SET @InitNum =1
WHILE @InitNum<=100
BEGIN
INSERT INTO Nums
SELECT @InitNum
SET @InitNum=@InitNum+1
END
--开始查询--mssql的SUBSTRING开始索引是从1开始的
SELECT id,title,xx,numid,SUBSTRING( xx ,numid,CHARINDEX(',',xx+',',numid)-numid )AS '单独元素'
FROM Test JOIN Nums
ON NumID <= LEN(xx)
AND SUBSTRING(','+xx,NumID,1)=','
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
LZ 像这种表不满足第一范式 字段多值
有种做法叫 拆分元素
也就是 多值字段转成多行,那么就很好处理了
按你的数据 下面是语句 希望对你有帮助
这里也借助一张数字表 来取得 XX字段','的位置
--创建测试表
CREATE TABLE Test
(
Id int primary key identity(1,1),
title int,
xx varchar(2000),
)
--插入数据
INSERT INTO Test
SELECT 22,'12,23,44,55'
UNION ALL SELECT 22,'122,13,44,55'
UNION ALL SELECT 22,'12,22,43,51'
UNION ALL SELECT 22,'1,13,44,55'
UNION ALL SELECT 22,'12,23,24,25'
UNION ALL SELECT 22,'12,33,44,55'
UNION ALL SELECT 22,'2,3,44,55'
UNION ALL SELECT 22,'23,1,2,3'
--建个数字辅助表
CREATE TABLE Nums
(
NumID int primary key
)
--插入数据
DECLARE @InitNum int
SET @InitNum =1
WHILE @InitNum<=100
BEGIN
INSERT INTO Nums
SELECT @InitNum
SET @InitNum=@InitNum+1
END
--开始查询--mssql的SUBSTRING开始索引是从1开始的
SELECT id,title,xx,numid,SUBSTRING( xx ,numid,CHARINDEX(',',xx+',',numid)-numid )AS '单独元素'
FROM Test JOIN Nums
ON NumID <= LEN(xx)
AND SUBSTRING(','+xx,NumID,1)=','
有种做法叫 拆分元素
也就是 多值字段转成多行,那么就很好处理了
按你的数据 下面是语句 希望对你有帮助
这里也借助一张数字表 来取得 XX字段','的位置
--创建测试表
CREATE TABLE Test
(
Id int primary key identity(1,1),
title int,
xx varchar(2000),
)
--插入数据
INSERT INTO Test
SELECT 22,'12,23,44,55'
UNION ALL SELECT 22,'122,13,44,55'
UNION ALL SELECT 22,'12,22,43,51'
UNION ALL SELECT 22,'1,13,44,55'
UNION ALL SELECT 22,'12,23,24,25'
UNION ALL SELECT 22,'12,33,44,55'
UNION ALL SELECT 22,'2,3,44,55'
UNION ALL SELECT 22,'23,1,2,3'
--建个数字辅助表
CREATE TABLE Nums
(
NumID int primary key
)
--插入数据
DECLARE @InitNum int
SET @InitNum =1
WHILE @InitNum<=100
BEGIN
INSERT INTO Nums
SELECT @InitNum
SET @InitNum=@InitNum+1
END
--开始查询--mssql的SUBSTRING开始索引是从1开始的
SELECT id,title,xx,numid,SUBSTRING( xx ,numid,CHARINDEX(',',xx+',',numid)-numid )AS '单独元素'
FROM Test JOIN Nums
ON NumID <= LEN(xx)
AND SUBSTRING(','+xx,NumID,1)=','
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from ooo where xingming like '%"&xingming&"%'" or dizhi like '%"&xingming&"%'" or shijian like '%"&xingming&"%'".
这儿用的查询方式是一个输入,一次匹配三个字段,当然你也可以用三个输入分别匹配三个字段。
这儿用的查询方式是一个输入,一次匹配三个字段,当然你也可以用三个输入分别匹配三个字段。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%
xingming=request.form("xingming")
set conn=server.createObject("ADODB.Connection")
conn.open "driver={SQL Server};server=wjx;UID=sa;PWD=123456;database=xxx"
set rs = server.createobject("adodb.recordset")
sql="select * from ooo where xingming+dizhi+shijian like '%"&xingming&"%'"
rs.open sql,conn,1,1
%>
输入一个值可以匹配三个字段的值!做模糊查询
xingming=request.form("xingming")
set conn=server.createObject("ADODB.Connection")
conn.open "driver={SQL Server};server=wjx;UID=sa;PWD=123456;database=xxx"
set rs = server.createobject("adodb.recordset")
sql="select * from ooo where xingming+dizhi+shijian like '%"&xingming&"%'"
rs.open sql,conn,1,1
%>
输入一个值可以匹配三个字段的值!做模糊查询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
For a description of your ASP+SQL2000多条件模糊查询,
带着你的问题和Email来找我,
请与我们联系进一步需求,
有可能帮你,
使用百度_Hi给我留言,
此回复针对所有来访者和需求者有效,
ES:\\84C1CC070C71738DC48000759777AE96
带着你的问题和Email来找我,
请与我们联系进一步需求,
有可能帮你,
使用百度_Hi给我留言,
此回复针对所有来访者和需求者有效,
ES:\\84C1CC070C71738DC48000759777AE96
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询