用好WHERE 1=1

有种操作叫做:select * from student where 1=1

如果只在数据库中操作,where语句是多余的,而在实际工作编程中,where 1=1 多用于多条件查询。
比如,QQ添加好友可以采用条件查找,而条件查找你可能对年龄有要求,可能对昵称有要求,可能对地区有要求,可能对性别有要求。在数据库里查询语句就是:

select qq from user where name like '%QAQ%' and sex='女'

(假设数据库里的项是这样的)

这句话就是查询昵称带有QAQ的女性用户QQ,数据库语句中不需要用到where 1=1的操作,但在编程中它却可以省很多力。
以java的jdbc为例:

String sql="select qq from user where 1=1"
if(sex!=null)//如果性别非空,即查询有要求  
sql+="and sex=?"
if(name!=null)  
sql+="and name like '%?%'"

where 1=1在这里起到的作用就是省去where是否存在的判定,让多条件查询时符合条件sql+="and xxxxxx"就可以了,而不需要判定是否有where

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...