当前位置: 首页 > 知识库问答 >
问题:

在数据库浏览器中运行罚款的sql查询中的Android异常

慕容兴贤
2023-03-14

在Android上运行以下查询时

select * 
from EICRChecklistItems 
where (Sect, S_Sect, SS_Sect) in (
  select Sect, S_Sect, SS_Sect 
  from EICRCheckList 
  where Version=2018 
  order by id
) 
order by id

我有个例外:

Android.database.sqlite.sqliteException:“,”附近:语法错误(代码1)

sects_sectss_sect都定义为integer

但在DB浏览器上对同一数据库的副本运行时,它会正确执行

如能指出是什么原因造成这种情况,将不胜感激。

private var EICR_CHECK_ITEMS_TABLE = "EICRChecklistItems"
private var EICR_CHECKLIST_TABLE = "EICRCheckList"
val cursor1: Cursor = writableDatabase.rawQuery(
            "select * from $EICR_CHECK_ITEMS_TABLE where (Sect, S_Sect, SS_Sect) in (select Sect, S_Sect, SS_Sect from $EICR_CHECKLIST_TABLE where Version='2018' order by id) order by id",  null)

共有1个答案

唐兴思
2023-03-14

由于您的SQLite版本在3.15.0之前,并且您不能使用行值,因此您可以使用exists而不是运算符in编写查询:

SELECT ei.* 
FROM EICRChecklistItems ei 
WHERE EXISTS (
  SELECT 1 FROM EICRCheckList el
  WHERE el.Version = 2018
  AND el.Sect = ei.Sect AND el.S_Sect = ei.S_Sect AND el.SS_Sect = ei.SS_Sect
)
ORDER BY ei.id

请注意,代码中子查询中的order by子句实际上是无用的。

 类似资料:
  • 在我的SQLite数据库管理器中,我可以查询以下内容: 此查询返回2012年7月名为“tripmileagetable”的表中里程表列的总和,但我想在android查询中编写此代码。 但是我不知道如何在database.query()方法中建立这个查询,有人能帮忙吗?

  • 问题内容: 在我的SQLite数据库管理器中,我可以查询以下内容: 这个查询从2012年7月的名为“ tripmileagetable”的表中返回了里程表总和,但是我想在android查询中编写此代码。 但是我不知道如何在database.query()方法中建立此查询,有什么可以帮助吗? 问题答案:

  • 我一直在尝试一个应用程序,其中我使用AsyncTask从sqlite表中检索数据。它有时工作起来没有那么多问题。但是当它失败时,Logcat看起来像这样 07-24 16:06:20.477: E/AndroidRuntime(950): 致命异常: 异步任务 #1 07-24 16:06:20.477: E/AndroidRuntime(950): java.lang.RuntimeExcept

  • Mocha在浏览器中运行。每个版本的Mocha都将拥有新版本./mocha.js并./mocha.css在浏览器中使用。 特定于浏览器的方法 以下方法仅在浏览器上下文中起作用: mocha.allowUncaught() :如果被调用,错误处理程序将不会吸收未捕获的错误。 典型的设置可能类似于下面,我们呼吁mocha.setup('bdd')使用BDD加载测试脚本,运行之前的界面onload与mo

  • 问题内容: 谁能给我一些示例源代码,以显示如何从JavaScript本地连接到SQL Server 2005数据库?我正在台式机上学习Web编程。 还是我需要使用任何其他脚本语言?如果您有其他建议,请提出一些建议,但我现在正尝试使用JavaScript。我的SQL Server是本地安装在桌面上的-SQL Server Management Studio 2005和IE7浏览器。 问题答案: 出于

  • 问题内容: 我想在进行Web服务调用之前检查数据库中是否已记录的记录。 这是我想像的查询形式,我似乎无法弄清楚语法。 有没有办法做到这一点?这样的查询叫什么? 我想将ID的列表传递给mysql,并希望它吐出数据库中尚未存在的ID? 问题答案: 为了确认我已正确理解,您想传递一个数字列表,并查看现有表中 不 存在哪些数字?有效: 您似乎可以随时建立此查询,在这种情况下,可以通过将上面的代码更改为 尽