我的查询实际上是:
INSERT INTO `table` (f1,f2,status) VALUES
(1,5,'on'), (3,2,'on'), (15,20,'on')
ON DUPLICATE KEY UPDATE status='off';
但是如何在"上添加IF状态="然后做这个更新?我试过了
INSERT INTO `table` (f1,f2,status) VALUES
(1,5,'on'), (3,2,'pending'), (15,20,'on')
ON DUPLICATE KEY UPDATE status='off' IF(status='pending');
但似乎没有用,我在文档中对此部分并不了解。
请帮忙吗?
由于
答案 0 :(得分:1)
这是一个很好的文档和示例,演示了相同的MySQL IF Function。
MySQL IF函数的语法如下: IF(expr,if_true_expr,if_false_expr)
如果expr
求值为TRUE
,则IF函数返回if_true_expr
,否则返回if_false_expr
。
现在,回答您的问题,假设您要根据状态值更新状态'on'
或'off'
或'pending'
或用户输入列status
在,查询应如下所示:
INSERT INTO `table` (f1,f2,status) VALUES
(1,5,'on'), (3,2,'pending'), (15,20,'on')
ON DUPLICATE KEY UPDATE status = IF(VALUES(status) = 'on', VALUES(status), 'off');