在 MySQL 中,“Where 1=1”导致表的所有行,因为此语句始终为真。下面给出了一个更好地理解这个陈述的例子 -
首先,在 create 命令的帮助下创建一个表。这给出如下 -
mysql> CREATE table WhereConditon -> ( -> id int, -> name varchar(100) -> );
成功创建表后,在插入命令的帮助下插入一些记录对此的查询如下:
mysql> INSERT into WhereConditon values(1,'John'); mysql> INSERT into WhereConditon values(2,'Smith'); mysql> INSERT into WhereConditon values(3,'Bob'); mysql> INSERT into WhereConditon values(4,'David');
现在记录插入成功,可以借助select语句查看表中的记录数。这给出如下 -
mysql> SELECT * from WhereConditon;
执行上述查询后,可以看到表中的所有记录如下 -
+------+-------+ | id | name | +------+-------+ | 1 | John | | 2 | Smith | | 3 | Bob | | 4 | David | +------+-------+ 4 rows in set (0.00 sec)
现在,语句 1=1 与 select 语句一起使用以显示表中的名称。所有名称将显示为 1=1 始终为真。
对此的查询如下 -
mysql> select name from WhereConditon where 1=1;
以下是上述查询的输出
+-------+ | name | +-------+ | John | | Smith | | Bob | | David | +-------+ 4 rows in set (0.00 sec)