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

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

青灯夜游
Freigeben: 2020-07-07 15:59:46
nach vorne
8939 Leute haben es durchsucht

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);
    }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage