mySQL on copy,update ... IF statement Question
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mySQL on copy,update ... IF statement Question相关的知识,希望对你有一定的参考价值。
问题我似乎找不到明确的答案。当您执行mysql添加/或更新(如果重复)时,如果在更新字段上附加了IF语句,则该IF语句引用现有数据还是新数据?
即:
INSERT INTO images(image_id, image, description, image_owner, image_date)
VALUES(
%d,
%s,
%s,
%s,
NOW())
ON DUPLICATE KEY
UPDATE
image=%s,
description=%s,
**image_owner=IF(description IS NULL, %s, image_owner), **
image_date=NOW(), ...values for %s...);
因此,如果管理员来并编辑说明/图像但要确保功劳与原始用户保持一致,则基本上使用此方法。因此对于此部分:if(description IS NULL,..)部分是否检查与该记录相关的描述是否已在DB中为NULL,或者来自新更新的描述是否为NULL?
答案
在查询的UPDATE
部分中,description
引用表中的现有值。如果要使用查询的INSERT
部分中的值,请使用VALUES(description)
。
以上是关于mySQL on copy,update ... IF statement Question的主要内容,如果未能解决你的问题,请参考以下文章
MYSQL 外键 ON DELETE 和 ON UPDATE
sql UPDATE ON DUPLICATE KEY造成MYSQL死锁现场
MySQL外键约束On Delete和On Update的使用