L'utilisation de où 1=1 en SQL
Explication :
En fait, 1=1 est éternellement vrai et signifie inconditionnel, ce qui signifie que peu importe qu'il y ait 1=1 dans l'instruction SQL.
Ce 1=1 est souvent utilisé lorsque les applications rassemblent des conditions basées sur différentes sélections d'utilisateurs.
Par exemple : l'interface Web interroge les informations de l'utilisateur, où la valeur par défaut est 1=1, de sorte que même si l'utilisateur ne sélectionne aucune condition, la requête SQL ne se trompera pas. Si l'utilisateur sélectionne un nom, alors où devient où 1 = 1 et nom = « le nom entré par l'utilisateur ». Si d'autres conditions sont sélectionnées, continuez simplement à ajouter les instructions et après la condition où.
Si vous n'utilisez pas 1=1, chaque fois que vous ajoutez une condition, vous devez juger s'il y a une condition où devant elle. Sinon, écrivez où..., s'il y en a. , écrivez une instruction and, donc l'utilisation de 1=1 peut la simplifier à ce stade de la complexité de l'application.
Exemple :
Si le code suivant définit d'abord $where= '1=1', alors il n'est pas nécessaire de juger si $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); }
Cet article est reproduit à partir de : https://blog.csdn.net/longgeaisisi/article/details/100599010
Apprentissage recommandé : tutoriel mysql
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!