Maison >base de données >SQL >A quoi sert « où 1=1 » en SQL ?

A quoi sert « où 1=1 » en SQL ?

青灯夜游
青灯夜游avant
2020-07-07 15:59:468946parcourir

A quoi sert « où 1=1 » en SQL ?

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer