错误的代码就像SELECT *语句一样

问题描述 投票:0回答:1

我正在教自己如何使用SQLITE3。我有一个包含以下数据的COMPANY表:(谢谢TutorialsPoint)

ID          NAME                  AGE         ADDRESS     SALARY    
----------  --------------------  ----------  ----------  ----------

1           Paul                  32          California  20000.0   
2           Allen                 25          Texas       15000.0   
3           Teddy                 23          Norway      20000.0   
4           Mark                  25          Rich-Mond   65000.0   
5           David                 27          Texas       85000.0   
6           Kim                   22          South-Hall  45000.0 

我正在尝试从AGE为25或27的表中检索所有数据。我执行了以下代码:

SELECT * FROM COMPANY WHERE AGE = 25 OR 27;

我现在意识到我使用的语法不正确,但有人可以告诉我为什么这个错误的代码返回相当于SELECT * FROM COMPANY

谢谢你,肖恩

sqlite
1个回答
1
投票

这种情况正在发生,因为您的查询可以等效地重写为

SELECT * FROM COMPANY WHERE 1=1;

(参见WHERE AGE = 25 OR 27;查询的最后部分 - OR 27相当于1 = 1)

在sqlite中没有boolean这样的类型。相反,它存储为integer。所以你说的是“请给我所有的公司(插入任何总是如此的陈述)”。

© www.soinside.com 2019 - 2024. All rights reserved.