我有下一个sql结构表:
id | account_id | app_id | setting | value
示例数据:
1 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | recipients | taras@gmail.com
2 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | day | monday
3 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | count | 1234
如果我发送新值,则需要更新此数据;如果请求不存在,则需要删除。
如果我发送(收件人,日,计数)新值更新现有数据,但是我只是发送(收件人,天)来更新此数据并删除的计数
我尝试使用下一个代码:
update settings
set setting='count', value='1'
where account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1';
但是这个脚本会更新表中的所有字段。 如何解决?
答案 0 :(得分:2)
从输入看,表中的许多值看起来都有account_id
和app_id
的相同值,因此当您运行脚本时,它会更新所有值。
如果您只想在设置中更新count
行,请执行 -
update settings
set value='1'
where account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1' and setting='count' and (value is not null and value <> '');
删除行
delete from settings
account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1' and setting='count' and (value is null or value = '');