使用Mysql插入非唯一行时更新字段

时间:2015-02-18 06:47:17

标签: mysql

插入时,如果另一个字段的值已经存在,我需要更新给定字段。

Eg: fieldone | fieldtwo 1 | New 2 | New 1 | Old

这里fieldone不是唯一的,而field的两个值应该更新,而fieldone的值会重复。 如果在fieldone中再次出现1,我们应该将fieldtwo值更新为“Old”而不是“New”。

有没有办法只使用Mysql?(不使用任何其他语言)

非常感谢提前

2 个答案:

答案 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';

希望这有助于某人。

感谢大家的回复:)