Geo*_*wil 5 sqlite syntax-error sqlfiddle
我正在尝试使用WHERE所需行ID上的条件从SQLite数据库查询特定行。但是,该查询未返回任何结果,并且导致我的记录器引发错误,指出存在语法错误。
这是查询:
Select * From Equipment Where ID = 2 and ID = 3 and ID = 4 and ID = 7 and ID = 11 and ID = 34
Run Code Online (Sandbox Code Playgroud)
这是我的日志中的语法错误:
Aug 17 2017 23:12:23 [Err]: Err002 - Query on Equipment could not be prepared: near "=": syntax error at File: c:\users\geowil\documents\visual studio 2015\projects\ov_pocs\universearc_poc\datasystem.cpp Line: 323.
Run Code Online (Sandbox Code Playgroud)
所以我航行到SQLFiddle尝试看看是否错过了一些东西。它显示相同的行为。在and有条件的情况下,它不会返回任何结果-但可以对单个ID或一系列ID运行查询。
我是在做错什么还是这是SQLite的限制?
更新:
产生了脑波。Where ID IN(1,3,4)在SQLFiddle上使用Works,所以现在我想重新调整问题的用途,以问问为什么这样做,但是我原来的查询却没有。
使用IN来选择多个元组。
Select * From Equipment Where ID IN (2, 3, 4, 7, 11, 34);
Run Code Online (Sandbox Code Playgroud)
如果您的SQLite或数据库中存在每个ID,则将选择每个元组。
对于您的查询,您的逻辑方程式永远不会选择其中一个元组,因为id不会有两个或多个值(ID=2 AND ID=3:如果ID等于,2则不会等于3)。您必须使用OR代替AND。
Select * From Equipment Where ID=2 OR ID=3 OR ID=4 OR ID=7 OR ID=11 OR ID=34;
Run Code Online (Sandbox Code Playgroud)
因此,如果您的SQLite或数据库中存在每个ID,则将选择每个元组。
| 归档时间: |
|
| 查看次数: |
3844 次 |
| 最近记录: |