加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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,则会选择每个元组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读