我想执行行更新/替换,以便未指定值的列保持原样,例如对于4列表:
-- expecting row = 99|a|b|?
replace into game_data ( id, col_a, col_b ) values ( 99, "a", "b" );
-- expecting row = 99|a|b2|c < a remains unchanged
replace into game_data ( id, col_b, col_c ) values ( 99, "b2", "c" );
这可能吗?如果不是这样,我猜测替代方法是提取现有行,根据需要合并数据,然后执行替换,但这似乎是数据库应该做的事情?模式的东西?
(对于从bash脚本使用的sqlite3)
最佳答案
使用UPDATE语句,如下所示:
UPDATE game_data
SET col_a = 'a', col_b = 'b'
WHERE id= 99
这将为id为99的行设置col_a和col_b的值,而所有其他列值保持不变。
(注意:REPLACE()是字符串替换函数)。
注意:不幸的是,REPLACE在不同的SQL方言中表示不同的事物。
关于sql - SQL更新/替换行,不影响某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4837159/