>  기사  >  데이터 베이스  >  SQL에서 "where 1=1"의 용도는 무엇입니까?

SQL에서 "where 1=1"의 용도는 무엇입니까?

青灯夜游
青灯夜游앞으로
2020-07-07 15:59:468817검색

SQL에서

SQL에서 where 1=1의 사용

설명:

사실 1=1은 영원히 참입니다. 즉, 무조건적이라는 뜻입니다. SQL 문 1은 괜찮습니다.

이 1=1은 다양한 사용자 선택에 따라 조건이 달라지는 애플리케이션을 하나로 묶을 때 자주 사용됩니다.

예: 웹 인터페이스에서 사용자 정보를 쿼리할 때 기본값은 1=1이므로 사용자가 어떤 조건도 선택하지 않아도 SQL 쿼리가 잘못되지 않습니다. 사용자가 이름을 선택하면 where는 where 1=1이고 name='사용자가 입력한 이름'이 됩니다. 다른 조건을 선택한 경우에는 where 조건 뒤에 계속해서 추가하면 됩니다.

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"의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제