我正在教自己如何使用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
的内容吗?
谢谢你,肖恩
答案 0 :(得分:1)
发生了这种情况,因为您的查询可以等效地重写为
SELECT * FROM COMPANY WHERE 1=1;
(请参阅查询的最后一部分WHERE AGE = 25 OR 27;
- OR 27
相当于1 = 1)
sqlite中没有boolean
这样的类型。相反,它存储为integer
。所以你说"请给我所有的公司(插入任何声明都是真的)"。