Heim >Datenbank >SQL >Was nützt „wo 1=1' in SQL?

Was nützt „wo 1=1' in SQL?

青灯夜游
青灯夜游nach vorne
2020-07-07 15:59:468931Durchsuche

Was nützt „wo 1=1' in SQL?

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen