您现在的位置是:群英 > 数据库 > 关系型数据库
SQL 语句中 Where 条件后 写上1=1 是什么意思
Admin发表于 2022-06-14 17:40:031839 次浏览
这篇文章主要介绍了title,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望大家通过这篇文章可以有所收获。

SQL中where 1=1的用处

解释:

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

这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的。

如:web界面查询用户的信息,where默认为1=1,这样用户即使不选择任何条件,sql查询也不会出错。如果用户选择了姓名,那么where变成了where 1=1 and 姓名=‘用户输入的姓名’,如果还选择了其他的条件,就不断在where 条件后追加 and语句就行了。

如果不用1=1的话,每加一个条件,都要判断前面有没有where 条件,如果没有就写where …,有就写and语句,因此此时用1=1可以简化了应用程序的复杂度。

例:

如下面代码首先定义$where= ‘1=1’,后面就可以不用去判断是否存在$where

public function listAction()
    {
       $get = $this->getQuery();
        $statementBalanceDetailModel = M('Ticket\StatementBalanceDetail');

        $page = isset($get['page']) ? intval($get['page']) : 1;
        $pageSize = isset($get['page_size']) ? intval($get['page_size']) : 10;

        //用处
        $where = ' 1=1 ';
        $binds = array();
        if (isset($get['id']) && $get['id'] != '') {
            $where .= ' and id = :id';
            $binds['id'] = trim($get['id']);
        }

        if (isset($get['shop_name']) && $get['shop_name'] != '') {
            $where .= ' and shop_name = :shop_name';
            $binds['shop_name'] = trim($get['shop_name']);
        }

        if (isset($get['statement_sn']) && $get['statement_sn'] != '') {
            $where .= ' and statement_sn = :statement_sn';
            $binds['statement_sn'] = trim($get['statement_sn']);
        }

        $where .= ' order by id desc';
        $result = $statementBalanceDetailModel->paginate($where, $pageSize, $page, $fields = array(), $binds);
        $sceneryList = $result['data'];
        $total = $result['total_result'];
        $pager = Paginate::web($total, $page, $pageSize);

        $data = array(
            'pager' => $pager,
            'sceneryList' => $sceneryList,
        );

        $this->getView()->assign($data);
    }



以上就是关于“SQL 语句中 Where 条件后 写上1=1 是什么意思”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注群英网络,小编每天都会为大家更新不同的知识。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: sql
相关信息推荐
2022-05-18 17:26:01 
摘要:在oracle中,默认表空间是用户在创建时不特别指定表空间位置的存储位置,可以利用ALTER命令修改表空间,语法为“ALTER DATABASE DEFAULT TABLESPACE users;”。
2022-05-07 17:43:22 
摘要:在mysql中,可以利用“mysql-proxy”实现读写分离;“mysql-proxy”是一个mysql官方提供用于实现读写分离的软件,也叫中间件,可以让主数据库处理写操作,而从数据库处理查询的操作,数据库的一致性则通过主从复制来实现。
2022-05-18 17:25:02 
摘要:在oracle中,可以利用ALTER语句配合“DROP COLUMN”来删除指定的列,语法为“​ALTER TABLE 表名 DROP COLUMN 列名”或者“ALTER TABLE 表名 DROP (列名1,列名2)”。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部