转http://community.csdn.net/Expert/TopicView3.asp?id=4786597 youyu111(子柚) : 我们以前经常这样用,是因为这样的:在代码中组织复杂的sql时,有多种的条件在where 项中,每个条件可能都是可选的,如:where 1=1 and (name like '%鱼') and (date>'2006-5-28') 但是因为这2个条件是可选的,在把条件连接起来的时候用1=1 就可以讨巧的处理"and"的问题,正如前面所说的,这只是一种技巧而已,可以动态组织sql,我觉得没必要深究1=1的问题。啰嗦了点,呵呵-------------------------------------------------------------------------------------这本来就是个小技巧 不知道二楼的是否真正明白其含义
Where 1=1是为了后面再写条件语句,因为后面的条件语句可能不确定到底是有还是没有。 Where 1<>1是为了列出表结构,如果配合使用Select Into的话可以复制表结构到一张新表,而不复制数据。
多条件搜索中组合条件的技巧(可以少写代码): 形如: string sql="select * from tablename where 1=1"; if (Requst("条件").Tostring()!=string.Empty) { sql=sql+" and 字段名="+Requst("条件").Tostring(); }
搜1=1有很多记录
http://community.csdn.net/Expert/TopicView3.asp?id=4786597
http://blog.csdn.net/lee576/archive/2006/11/06/1370361.aspx
youyu111(子柚) :
我们以前经常这样用,是因为这样的:在代码中组织复杂的sql时,有多种的条件在where 项中,每个条件可能都是可选的,如:where 1=1 and (name like '%鱼') and (date>'2006-5-28')
但是因为这2个条件是可选的,在把条件连接起来的时候用1=1 就可以讨巧的处理"and"的问题,正如前面所说的,这只是一种技巧而已,可以动态组织sql,我觉得没必要深究1=1的问题。啰嗦了点,呵呵-------------------------------------------------------------------------------------这本来就是个小技巧 不知道二楼的是否真正明白其含义
Where 1<>1是为了列出表结构,如果配合使用Select Into的话可以复制表结构到一张新表,而不复制数据。
形如:
string sql="select * from tablename where 1=1";
if (Requst("条件").Tostring()!=string.Empty)
{
sql=sql+" and 字段名="+Requst("条件").Tostring();
}