我和数据库和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更新其值,这些变量可以是相同的或可能已经改变。
答案 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)的列,这将为每一行提供一个数字。