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

标签 mysql

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

例如: 现场|场二 1 |新的 2 |新的 1 |旧的

这里 fieldone 不是唯一的,当 fieldone 的值重复时,fieldtwo 值应该更新。 如果 fieldone 中再次出现 1,我们应该将 fieldtwo 值更新为“旧”而不是"new"。

有没有办法只使用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”

关于mysql - 使用 Mysql 插入非唯一行时更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28577612/

相关文章:

MySQL - TIMESTAMP 字段类型自动转换为 UTC?

java - 实现HIkariCP时出现ResultSetImpl错误

c++ - Mysql C++ 驱动程序-创建后获取准备好的语句查询

php - 如何从MySQL表中选择所有日期之间的列并按列排序

php - mysql。限制 $x1、$x2。是否可以限制 $x2, $x1?

python - SQLAlchemy:如何根据多个键自动递增?

MySQL查询查找名字以B开头的 Actor 的电影标题

mysql - 优化 SQL 查询

php - 无法在准备好的 mysql 查询中使用 MAX()

mysql - SQL:对行进行计数和分组