【问题标题】:SQLite UPDATE value with row number possible/options?行号可能/选项的 SQLite UPDATE 值?
【发布时间】:2012-01-08 16:48:46
【问题描述】:

您好,我正在使用 java 和 shell 命令(因此命令必须是一行)在 android 中开发 SQLite 查看器,我已经编写了布局和查看器,一切都很完美。我进行了设置,因此当长按一个值时,编辑文本会显示用户可以输入新值的位置,然后当按下 OK 时,它应该更新该值。

我有列名、旧值和新值、数据库名、表名等,但问题是允许他们更新值有时(很可能就是这种情况)它不知道正确的行。

所以请记住,我是 sqlite 的新手,使用它不到一周。有没有办法用列名和行号更新列值?

我有哪些更新表格的选项。

我也不太明白我有一张这样的表(一列)

sample
--------
0
0
0
1
0
1
1
0

如何将第三行更新为等于 1?如果我这样做了

sqlite3 DATABASEHERE "UPDATE TABLEHERE SET sample='1' WHERE sample='0'"

where 语句描述了第 1、2、3、5 和 8 行,所以必须有一种使用行号的方法?

感谢您的帮助

【问题讨论】:

  • 可以为表添加CREATE语句吗?
  • 你不能有这样的桌子。关系代数(SQLite 等关系数据库的基础)将关系(或表)定义为一组元组。作为一个集合,具有完全相同值的元组是无法区分的。不可能有许多行具有所有相同的值,因为它们被认为是相同的,因此只保存一次。
  • 我没有创建语句我认为我无法得到它,因为我没有使用我的数据库它使用任何数据库它是我正在编写的文件浏览器的一部分所以我正在编辑像 sdcard 这样的数据库,什么不是
  • 至于无法拥有这样的表格,我的手机上有一个,其中 0 表示显示通知,1 表示隐藏通知,所以我看到 0 多次和 1 多次取决于偏好(来自超级用户数据库)

标签: android database sqlite bash


【解决方案1】:

SQLite 允许您访问rowid。所以你可以写SELECT rowid, col FROM table1然后用它来更新表:UPDATE TABLEHERE SET sample='1' WHERE rowid=3

【讨论】:

    猜你喜欢
    • 2012-02-04
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    相关资源
    最近更新 更多