You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite无法读取表中字段:查询kordinat列提示不存在

解决SQLite查询kordinat字段提示“no such column”的问题

这个问题的核心是SQLite对标识符(列名、表名)的引用规则——你在建表时用反引号`包裹了kordinat列名,而查询时直接写了裸的列名,导致SQLite无法正确识别这个列。

下面是具体的解决步骤:

1. 先确认表的实际结构(可选但推荐)

先执行这条语句检查mall表的列信息,确保列名确实是kordinat,没有拼写错误:

PRAGMA table_info(mall);

你可以通过SQLite可视化工具或者在代码里执行这条查询,查看返回的列名列表。

2. 修改查询语句,正确引用列名

因为你建表时用了反引号定义列名,查询时需要用标识符引用符包裹它,SQLite支持三种方式:

  • 用反引号(和建表时一致):
cursor = db.rawQuery("SELECT `kordinat` FROM mall", null);
  • 用双引号:
cursor = db.rawQuery("SELECT \"kordinat\" FROM mall", null);
  • 用方括号:
cursor = db.rawQuery("SELECT [kordinat] FROM mall", null);

3. 长期解决方案:建表时避免不必要的标识符引用

如果你的列名不是SQLite关键字(kordinat显然不是),建表时可以去掉反引号,这样后续查询不需要额外包裹,代码更简洁:

CREATE TABLE mall ( 
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
    name TEXT NOT NULL, 
    kordinat TEXT NOT NULL 
);

修改后,直接用SELECT kordinat FROM mall查询就不会再报错了。

内容的提问来源于stack exchange,提问作者muasx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:52:04