0

我尝试通过 sqflite 运行查询并得到以下错误:

DatabaseException(no such column: true (code 1): , while compiling: select (case true WHEN true THEN 111 END) xkey1 from tb_path

以下是 SQL 步骤:

  1. create table tb_path(name text, age text);
  2. db.rawQuery('select (case true WHEN true THEN 111 END) xkey1 from tb_path'); 并且出现了上面的错误。

如果我尝试通过 SqlLite Expert Personal(Windows 版 SQLITE 工具)运行 SQL,则可以正常工作。

4

1 回答 1

0

当我在 sqlite 命令行(Ubuntu 18.04)中尝试您的步骤时:

$ select sqlite_version();
3.22.0
$ CREATE TABLE tb_path(from_ text, to_ text);
$ select (case true WHEN true THEN 111 END) xkey1 from tb_path;
Error: no such column: true

如果我尝试使用最新的二进制下载 (3.27),我不会收到错误消息:

$ select sqlite_version();
3.27.2
$ CREATE TABLE tb_path(from_ text, to_ text);
$ select (case true WHEN true THEN 111 END) xkey1 from tb_path;

所以也许这样的声明只对较新的 sqlite 版本有效,并且由于 sqflite 使用 iOS/Android 平台提供的任何东西,它可能还不被支持(在 Android 上查看一个很好的 sqlite 版本列表:Android中使用的 SQLite 版本?

于 2019-03-08T18:47:17.190 回答