我需要否定列中所有行的列值。我正在尝试使用以下查询执行此操作,但它没有更新任何行:
sqliteDatabase.rawQuery("UPDATE "+ SQL_TABLE_NAME + " SET "+ COL_1 +" = " + "-"+COL_1 , null);
Run Code Online (Sandbox Code Playgroud)
其中 COL-1 = col_1,为表中整数类型。
--小伙子们
您可以将列乘以 -1
Update SQL_TABLE_NAME Set COL_1 = COL_1 * -1
Run Code Online (Sandbox Code Playgroud)
请注意,您的查询格式对我有用;
Update tPerson Set Age = -Age
Run Code Online (Sandbox Code Playgroud)
如果我是您,我会创建一个字符串并将您的查询设置为该字符串,以便您可以检查它是否按预期设置:
String sql = "UPDATE "+ SQL_TABLE_NAME + " SET "+ COL_1 +" = " + "-" + COL_1;
sqliteDatabase.rawQuery(sql, null); //breakpoint here, and check sql var
Run Code Online (Sandbox Code Playgroud)
您的 SQL_TABLE_NAME 中是否有空格?尝试将其括在方括号中,也许与您的列名相同。
编辑:
我建议将主键更新为负数,但要实现此目的,您可以执行以下操作:
SET IDENTITY_INSERT Person ON
Insert Into Person ([Id], [Name], [Age])
Select -[Id], [Name], [Age] From Person
SET IDENTITY_INSERT Person OFF
Run Code Online (Sandbox Code Playgroud)
(但这会复制您的表,您可能希望将数据推入临时表中) - 但是我认为这是一个可怕的解决方案。我会尝试找到一种方法来重构您的表架构,使其不是主键。
归档时间: |
|
查看次数: |
12190 次 |
最近记录: |