我想知道如何用负增量更新字段,但如果新值小于1则删除该行?
是否可以在case或if / else块中放置和更新语句?
目前我正在做一个select语句来获取当前值,然后使用php进行评估并进行第二次查询:
if ($row['field']==1) {
"DELETE from table WHERE k='123'"
} else {
"UPDATE table SET field=(field-1) WHERE k='123'"
}
只是想知道你是否可以在一个查询中执行此操作?
答案 0 :(得分:1)
你想要这样的东西??????
DELETE FROM table WHERE (field-1) < 1
UPDATE table SET field = (field-1) WHERE (field-1) >= 1
答案 1 :(得分:0)
我会在一个事务中执行此操作,以确保所有更新同时由数据库的其他用户查看
Begin
Delete from my_table where my_field <= 1
Update my_table set my_field = my_field - 1
Commit