在用sql语句进行多条件模糊查询的时候,只要有一个条件符合,就从库中把所有相关的数据取出来
比如说有三个查询条件,姓名,学号,地址。在通过这三个条件查询时,如果输入框中输入姓名为“张”,学号为“1”,地址为空,点击查询,应该将数据库中所有满足模糊条件:姓名中有“三”,学号中有”1“的都搜索出来,而不是将同时满足模糊条件:姓名中有“三”,学号中有”1“的记录搜出来。请问各位大虾这代码怎么写?
比如说有三个查询条件,姓名,学号,地址。在通过这三个条件查询时,如果输入框中输入姓名为“张”,学号为“1”,地址为空,点击查询,应该将数据库中所有满足模糊条件:姓名中有“三”,学号中有”1“的都搜索出来,而不是将同时满足模糊条件:姓名中有“三”,学号中有”1“的记录搜出来。请问各位大虾这代码怎么写?
解决方案 »
- ajax 实现倒计时问题?
- gridview出现大问题了,各位高手帮忙啊
- SQL语句错在那里?
- |M| 用什么方法来实现网站记录一台电脑什么时候访问过他
- 使用ASP.net 2.0 调试程序总是报错:访问 IIS 元数据库失败
- 救命!如何通过程序代码实现Reporting Service的登陆(应用集成),而不是弹出对话框?
- 帮帮忙,看看哪里不对!
- .net 的参数化查询就没有漏洞了么,怎样攻击这个东西?
- 如何为asp.net项目建立调试环境??
- 如何清空sql server中image中的内容?
- 如果减少viewstate的的代码
- “因为数据库正在使用,所以未能获得对数据库的排它访问权”问题,修改后,总是超时!!
select * from table where 姓名 like '%三%' or 学好 like '%1%'
姓名有“三”,同时学号有“1”
select * from table where 姓名 like '%三%' and 学好 like '%1%'
set nocount on
declare @s nvarchar(4000)
select @s='Select * from table where 1=1'
+case when @Name>'' then ' and Name like @Name' else '' end
+case when @id>'' then ' and id like @id' else '' end
+case when @address>'' then ' and address like @address' else '' end exec sp_executesql @s,
N'@Name varchar(50)=null,
@id varchar(50)=null,
@address varchar(50)
'
,@Name,@id,@address
end
还有就是查询的组合太多,我不可能为每个组合写个sql语句吧
select * from table where 姓名 like '%三%' or 学好 like '%1%'
姓名有“三”,同时学号有“1”
select * from table where 姓名 like '%三%' and 学好 like '%1%'
这个地址是空的,查的时候去将库中全部数据取出来的
http://download.csdn.net/source/408631
2.在程序端做SQL拼接一下.
根据查询条件, string strName,strNo,strAddr;
string strSqlWhere;
if (!string.IsNullOrEmpty(strName)) strSqlWhere = strSqlWhere + " NAME LIKE " + strName.ToString().Trim();
if (!string.IsNullOrEmpty(strNo))
{
if (string.IsNullOrEmpty(strSqlWhere)) strSqlWhere = strSqlWhere + " NO LIKE " + strNo.ToString().Trim();
else strSqlWhere = strSqlWhere + " OR NO LIKE " + strNo.ToString().Trim();
} if (!string.IsNullOrEmpty(strAddr))
{
if (string.IsNullOrEmpty(strSqlWhere)) strSqlWhere = strSqlWhere + " ADDR LIKE " + strAddr.ToString().Trim();
else strSqlWhere = strSqlWhere + " OR ADDR LIKE " + strAddr.ToString().Trim();
} if (!string.IsNullOrEmpty(strSqlWhere)) strSqlWhere = " WHERE " + strSqlWhere;