SQL中“where 1=1”有什么用?


本文摘自PHP中文网,作者青灯夜游,侵删。

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

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”有什么用?的详细内容,更多请关注木庄网络博客其它文章!

相关阅读 >>

asp连接sql和access数据代码(asp里的随机函数)

通过t-sql语句实现数据库备份与还原的代码

sql server 2005安装配置方法图文教程 完美兼容win7所有版本

mysql系列多表连接查询92及99语法示例详解教程

sqlserver 2005系统配置要求官方说明

教你如何让sparksql写mysql的时候支持update操作

52条sql语句教你性能优化

sql存储过程获取汉字拼音头字母函数

sql指的是什么

mysql数据库入门之备份数据库操作详解

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...