[数据库] SQL中“where 1=1”有什么用?

[复制链接]
查看1075 | 回复11 | 2020-5-27 07:01:26 | 显示全部楼层 |阅读模式

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);
    }

本文转载自:https://blog.csdn.net/longgeaisisi/article/details/100599010

推荐学习:mysql教程

以上就是SQL中“where 1=1”有什么用?的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:sql where
  • 本文转载于:csdn,如有侵犯,请联系916990011@qq.com删除
    • 上一篇:如何通过SQL语句用一张表更新另一张表
    • 下一篇:数据库中能够唯一地标识一个元组的属性或属性的组合称为什么

    相关文章

    相关视频

    • Mac 如何安装 MySQL8.0
    • mysql怎么创建数据库
    • sql数据库触发器怎么创建
    • 如何通过SQL语句用一张表更新另一张表
    • SQL中“where 1=1”有什么用?
    • 5.MySQL8之设置存储引擎
    • 8.MySQL8基于GTID复制介绍
    • 10.MySQL数据库操作之备份与还原
    • Mysql数据库管理
    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn! 本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
    回复

    使用道具 举报

    123457281 | 2020-11-11 15:51:23 | 显示全部楼层
    厉害了,悟空源码资源多教程多!
    回复

    使用道具 举报

    我的苦恼冉 | 2021-6-22 13:44:38 | 显示全部楼层
    很不错的资源站
    回复

    使用道具 举报

    淡然一笑wwc | 2021-7-6 20:15:20 | 显示全部楼层
    谢谢楼主分享的资源,爱了~~~
    回复

    使用道具 举报

    123457443 | 2021-8-1 14:17:15 | 显示全部楼层
    有情怀的站啊,爱了
    回复

    使用道具 举报

    标题超过5个字 | 2021-11-26 14:14:49 | 显示全部楼层
    这个站很好,资源多,教程全
    回复

    使用道具 举报

    dw3995 | 2022-3-25 10:44:40 | 显示全部楼层
    找了好多地方,终于找到了
    回复

    使用道具 举报

    喝意调伴除 | 2022-4-7 20:46:54 | 显示全部楼层
    厉害了悟空源码,这么多资源
    回复

    使用道具 举报

    淡淡如菊795 | 2022-6-13 07:14:38 | 显示全部楼层
    悟空源码资源不错。粉了
    回复

    使用道具 举报

    海鑫木业 | 2022-7-10 22:37:18 | 显示全部楼层
    很不错的资源站
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则