SQL での where 1=1 の使用
説明:
実際には、1=1 は永遠に真であり、無条件を意味します。つまり、SQL ステートメントに 1=1 があるかどうかは関係ありません。
この 1=1 は、さまざまなユーザーの選択に基づいてアプリケーションが条件を組み合わせる場合によく使用されます。
例: Web インターフェイスはユーザー情報をクエリします。デフォルトは 1=1 であるため、ユーザーが条件を選択しなくても、SQL クエリが間違ってしまうことはありません。ユーザーが名前を選択した場合、where は where 1=1 となり、name=「ユーザーが入力した名前」になります。他の条件が選択されている場合は、where 条件の後に and ステートメントを追加し続けます。
1=1を使用しない場合、条件を追加するたびに、その前にwhere条件があるかどうかを判断する必要があり、ない場合は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」の用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。