2

是否可以像insert一样执行更新

UPDATE `table` SET `value` ('N','N','N','N','Y','Y','Y','N', 'N') WHERE `my_id` = '1'

问题是要插入的值的数量我现在没有。它可以是 5 或 10。 在此处输入图像描述

4

2 回答 2

6

replace 就像插入一样,它只是检查是否有重复的键,如果是它则删除该行并插入新的行,否则它只是插入

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

REPLACE INTO table1 (Name,Type,InitialValue,FinalValue) VALUES ('A',3,50,90 )

并且已经存在 Name = 'A' 和 Type = 3 的行,它将被替换

CREATE UNIQUE INDEX idx_name_type ON table1(Name,Type)

编辑:快速说明 - 替换总是删除然后插入,因此在重负载中使用它从来都不是一个好主意,因为它在删除时需要排他锁,然后在插入时

一些数据库引擎有

插入 ... 在重复的密钥更新上 ...

于 2012-08-20T06:49:33.043 回答
2

您必须指定column-name.

UPDATE `table` SET `Col1`='y',`Col2`='n' ... WHERE `ID`='1'

或者想要更新一个或多个列/行:

UPDATE `table` Set Col1='Y' WHERE `ID` IN ('1','11','13')
于 2012-08-20T06:34:27.503 回答