繁体   English   中英

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

[英]Update field while inserting non-unique rows using Mysql

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

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

这里fieldone不是唯一的,并且fieldtwo的值应该被更新而fieldone的值被重复。 如果在fieldone中再次输入1,则应将fieldtwo值更新为“旧”而不是“新”。

有没有办法仅使用Mysql来执行此操作?(不使用任何其他语言)

提前谢谢了

    Insert into table_name values(VAL_FIELDONE ,  
    (SELECT CASE WHEN COUNT(VAL_FIELDONE) = 0 
    THEN 'NEW'  ELSE 'OLD' END))

要么

 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值将相应地为旧值或新值。 如果fieldone是新值,则选择将返回“ NEW”,否则返回“ OLD”

这终于可以了:)

INSERT INTO table_name(fieldone, fieldtwo) SELECT 'valueone', IF(COUNT(fieldone)=0, 'new', 'old') FROM table_name WHERE fieldone='valueone';

希望这对某人有帮助。

谢谢大家的答复:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM