sqlite3 – 在SQLite中使用id选择多行

前端之家收集整理的这篇文章主要介绍了sqlite3 – 在SQLite中使用id选择多行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用WHERE条件从我想要的行的ID查询我的sqlite数据库中的特定行.但是,查询没有返回任何结果,它导致我的记录器抛出一个错误,指出存在语法错误.

这是查询

Select * From Equipment Where ID = 2 and ID = 3 and ID = 4 and ID = 7 and ID = 11 and ID = 34

这是我日志中的语法错误

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.

所以我航行到SQLFiddle,试着看看我是否错过了什么.它显示相同的行为.使用和条件,它不返回任何结果 – 但对单个ID或一系列ID运行查询是有效的.

我做错了什么或者这是sqlite的限制?

更新:

有脑波.使用Where ID IN(1,3,4)在sqlFiddle上运行所以现在我想重新调整我的问题,问为什么这样可行,但我的原始查询没有.

解决方法

使用IN选择多个元组.

Select * From Equipment Where ID IN (2,4,7,11,34);

如果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;

因此,如果sqlite或数据库中存在每个ID,则会选择每个元组.

猜你在找的Sqlite相关文章