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

时间:2013-12-19 20:13:09

标签: 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,但只有Query应该为我做。

由于

编辑:

我知道这听起来很荒谬,许多人会问为什么桌子是这样设置的,但我无法控制。我只能说,我能够找出一个行号,并需要根据存储在另一个变量中的内容更新每个列的值。通常这些变量将保持我想要查找的值,但它无法保证。因此,我只能回想起他们想要的行并在查找时存储它,然后通过跟踪其索引来更新(最后选择的行)并根据w / e更新其值,这些变量可以是相同的或可能已经改变。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

你的表需要某种形式的主键...至少你应该添加一个名为Key INT IDENTITY(1,1)的列,这将为每一行提供一个数字。