我正在教自己如何使用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
?
谢谢你,肖恩
这种情况正在发生,因为您的查询可以等效地重写为
SELECT * FROM COMPANY WHERE 1=1;
(参见WHERE AGE = 25 OR 27;
查询的最后部分 - OR 27
相当于1 = 1)
在sqlite中没有boolean
这样的类型。相反,它存储为integer
。所以你说的是“请给我所有的公司(插入任何总是如此的陈述)”。