c++ - 更新与特定行号相关的每一列的值? sqlite sqlite3

标签 c++ sql sqlite sql-update

我对数据库和 sql 很糟糕,但知道基础知识,我认为这有点超出基础知识。我需要一种方法来更新整个行的值,其中行是按行号选择的,因为我无法保证与该行中任何列相关的值。

示例数据库表:

Col1    Col2    Col3
a       b       c
d       e       f
g       h       i

所以我需要一个方法来表达

Update exampleTableName 
Set Col1 = 'j', Col2 = 'k', Col3 = 'l'
Where rowNumber = 2

我正在用 C++ 编写此代码并使用 sqlite3,但查询应该对我有用。

谢谢

编辑:

我知道这听起来很荒谬,很多人会问为什么要这样布置 table ,但我无法控制它。我只能说我能够计算出一个行号,并且需要根据存储在另一个变量中的内容更新每个列的值。通常这些变量将保存我想要查找的值,但不能保证。所以我只能记忆起他们想要的行并在查找时存储它,然后通过跟踪它的索引并根据这些变量中的 w/e 更新它的值来更新(最后选择的行),这可能相同或可能发生变化。

最佳答案

默认情况下,SQLite 中的每一行都有一个特殊的列,通常称为“rowid”,它在表中唯一标识该行。您可以使用它来选择您的行。

但是,如果将短语“WITHOUT ROWID”添加到 CREATE TABLE 语句的末尾,则会省略特殊的“rowid”列。有时省略 rowid 会带来空间和性能优势。

Update exampleTableName Set Col1 = 'j', Col2 = 'k', Col3 = 'l'   Where rowid= 2

关于c++ - 更新与特定行号相关的每一列的值? sqlite sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690789/

相关文章:

c++ - 允许 stringstream 和 outstream 作为参数

sql - 具有许多OR子句的DataSet

SQLite 使用新生成的 id 插入

java - 如何在没有sqlite数据库的情况下使用代号一和eclipse保存/加载表内容

SQLite3 API 的 C++ 包装器 - sqlite3pp 的替代品

c++ - gdb 在多线程 C 程序中断言断点

c++ - 循环中的前增量和后增量有什么区别(for/while)?

c++ - 在 Unix 文本文件中有多种字体

mysql - 如何加速 InnoDB count(*) 查询?

sql - SSRS 报告图表在 Outlook 中工作正常,但在 Gmail 和 Thunderbird 中不起作用