您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MySQL

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

时间:07-29来源:作者:点击数:

在公司做项目发现,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可以简化了应用程序的复杂度。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门