插入时,如果另一个字段的值已经存在,我需要更新给定字段。
Eg:
fieldone | fieldtwo
1 | New
2 | New
1 | Old
这里fieldone不是唯一的,而field的两个值应该更新,而fieldone的值会重复。 如果在fieldone中再次出现1,我们应该将fieldtwo值更新为“Old”而不是“New”。
有没有办法只使用Mysql?(不使用任何其他语言)
非常感谢提前
答案 0 :(得分:1)
Insert into table_name values(VAL_FIELDONE ,
(SELECT CASE WHEN COUNT(VAL_FIELDONE) = 0
THEN 'NEW' ELSE 'OLD' END))
OR
Insert into table_name values(VAL_FIELDONE ,
(SELECT IF(COUNT(FIELDONE) = 0 ,'NEW','OLD') from table_name where
FIELDONE = VAL_FIELDONE))
此处VAL_FIELDONE是您要在fieldone列中插入的值,并且filedtwo值将相应为old或new。如果fieldone是新值,则select将返回'NEW',否则返回'OLD'
答案 1 :(得分:0)
这最终有效:)
INSERT INTO table_name(fieldone, fieldtwo) SELECT 'valueone', IF(COUNT(fieldone)=0, 'new', 'old') FROM table_name WHERE fieldone='valueone';
希望这有助于某人。
感谢大家的回复:)