Mysql 像插入一样更新

Mysql 像插入一样更新,mysql,Mysql,是否可以执行类似insert的更新 问题是值的数量​​要插入,我现在不知道。它可以是5或10。 您必须指定列名 UPDATE `table` SET `Col1`='y',`Col2`='n' ... WHERE `ID`='1' 或要更新一个或多个列/行: UPDATE `table` Set Col1='Y' WHERE `ID` IN ('1','11','13') replace与insert类似,它只是检查是否有重复的键,如果是,则删除该行,并插入新的一行,否则它只是插入 例如,如

是否可以执行类似insert的更新

问题是值的数量​​要插入,我现在不知道。它可以是5或10。

您必须指定
列名

UPDATE `table` SET `Col1`='y',`Col2`='n' ... WHERE `ID`='1'
或要更新一个或多个列/行:

UPDATE `table` Set Col1='Y' WHERE `ID` IN ('1','11','13')

replace与insert类似,它只是检查是否有重复的键,如果是,则删除该行,并插入新的一行,否则它只是插入

例如,如果存在(名称、类型)的唯一索引,并且键入以下命令,则可以执行此操作

REPLACE INTO table1 (Name,Type,InitialValue,FinalValue) VALUES ('A',3,50,90 )
并且已经存在名称为'a'且类型为3的行,将替换该行

CREATE UNIQUE INDEX idx_name_type ON table1(Name,Type)
编辑:快速注释-替换总是先删除然后插入,所以在重载情况下使用它从来不是一个好主意,因为它在删除时需要独占锁,然后在插入时需要独占锁

一些数据库引擎


插入。。。在重复密钥更新时…

您想做什么?您不能更改到“我的sql库”函数。是否更新多条记录?或者一条记录的多个列?@xdazz使用数组中的值(数组长度与受影响的行数匹配)更新具有特定id的多个记录。这看起来是一个糟糕的设计,不是一个缺少的函数。@User156414数组值从何而来?似乎op不是这个意思。我不认为它的列正在更新,但是不同的行,其中我的_id为1,每行的值不同耶!但我不确定OP到底想告诉我们什么。我想没有人能确定:)@AVD我只需要将所有行
bool
where
my_id
更新为数组中的值。
CREATE UNIQUE INDEX idx_name_type ON table1(Name,Type)