sqlite3 – 在SQLite中使用id选择多行
发布时间:2020-12-12 18:55:46 所属栏目:百科 来源:网络整理
导读:我正在尝试使用WHERE条件从我想要的行的ID查询我的SQLite数据库中的特定行.但是,查询没有返回任何结果,它导致我的记录器抛出一个错误,指出存在语法错误. 这是查询: Select * From Equipment Where ID = 2 and ID = 3 and ID = 4 and ID = 7 and ID = 11 and
我正在尝试使用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:usersgeowildocumentsvisual studio 2015projectsov_pocsuniversearc_pocdatasystem.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,则会选择每个元组. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |