Die Verwendung von 1=1 in SQL
Erklärung:
Tatsächlich ist 1=1 ewig wahr und bedeutet bedingungslos, was bedeutet, dass es keine Rolle spielt, ob 1=1 in der SQL-Anweisung steht.
Diese 1=1 wird oft verwendet, wenn Anwendungen zusammengefügt werden, deren Bedingungen auf unterschiedlichen Benutzerauswahlen basieren.
Zum Beispiel: Die Weboberfläche fragt Benutzerinformationen ab, wobei der Standardwert 1=1 ist, sodass die SQL-Abfrage auch dann nicht fehlschlägt, wenn der Benutzer keine Bedingungen auswählt. Wenn der Benutzer einen Namen auswählt, wird „wo“ zu „wo“ 1=1 und „name=“der vom Benutzer eingegebene Name“. Wenn andere Bedingungen ausgewählt werden, hängen Sie einfach weiterhin „and“-Anweisungen nach der „where“-Bedingung an.
Wenn Sie nicht 1=1 verwenden, müssen Sie jedes Mal, wenn Sie eine Bedingung hinzufügen, beurteilen, ob davor eine Where-Bedingung steht. Wenn nicht, schreiben Sie where..., falls vorhanden Schreiben Sie eine „and“-Anweisung, sodass die Verwendung von 1=1 die Komplexität der Anwendung zu diesem Zeitpunkt vereinfachen kann.
Beispiel:
Wenn der folgende Code zuerst $where= '1=1' definiert, muss nicht beurteilt werden, ob $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); }
Dieser Artikel ist reproduziert von: https://blog.csdn.net/longgeaisisi/article/details/100599010
Empfohlenes Lernen: MySQL-Tutorial
Das obige ist der detaillierte Inhalt vonWas nützt „wo 1=1“ in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!