sql查询语句中$where="1=1"的含义

在公司做项目发现,sql语句中有类似这样的sql语句。

$orgid = isset($_GET['orgid']) ? intval($_GET['orgid']) : -1;
$where = "1=1";
$where .= $skey?" and ie_name LIKE '%{$skey}%'":'';
$where .= $orgid!=-1?" and ie_type = {$orgid}":'';
$sql="select id,ie_type,ie_name,creat_time from bas_income_expenditure WHERE {$where} order by id asc";

   其中1=1 是永恒成立的,意思无条件的,也就是说在SQL语句里有没有这个1=1都可以。

	这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的。
	如:web界面查询用户的信息,where默认为1=1,这样用户即使不选择任何条件,sql查询也不会出错。如果用户选择了姓名,那么where变成了where 1=1 and 姓名='用户输入的姓名',如果还选择了其他的条件,就不断在where 条件后追加 and语句就行了。就像淘宝一样,先增加一个裤子的条件,在增加一个性别为男的条件,在增加一个价格大于80元之类的条件。如果不用1=1的话,每加一个条件,都要判断前面有没有where 条件,如果没有就写where ...,有就写and语句,因此此时用1=1可以简化了应用程序的复杂度。
	

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值