错误的代码就像SELECT * Statement

时间:2018-01-05 15:16:40

标签: sqlite

我正在教自己如何使用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的内容吗?

谢谢你,肖恩

1 个答案:

答案 0 :(得分:1)

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

SELECT * FROM COMPANY WHERE 1=1;

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

sqlite中没有boolean这样的类型。相反,它存储为integer。所以你说"请给我所有的公司(插入任何声明都是真的)"。