这里有张桌子
mysql> select * from people;
ID | 性别 | 姓名 |
---|---|---|
1 | 남자 | 김준영</td> |
2 | 남자 | 박민수</td> |
3 | 여자 | 김영지 |
4 | 남자 | 준수</td> |
5 | 남자 | 구준표</td> |
6 | 여자 | 윤지 |
7 | 여자 | 이혜리</td> |
8 | 여자 | 권아영</td> |
9 | 여자 | 김예지 |
10 | 남자 | 준필</td> |
10 行一组(0.00 秒)
mysql> select * from people where 0 and (select 1 union select 2);
Empty set (0.00 sec)
mysql> select * from people where id=50 and (select 1 union select 2);
ERROR 1242 (21000): Subquery returns more than 1 row
我正在解决 SQL 注入问题。在第一种情况下,(select~) 命令没有执行,因为 '0 并且' 已经是假的。
我知道“逻辑运算符短路”
没有id=50的列,为什么会出现下面这种情况的错误?