更新像插入

时间:2012-08-20 06:32:21

标签: php mysql mysqli

是否可以像插入一样执行更新

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

问题是我现在不插入值的数量。它可以是5或10。 enter image description here

2 个答案:

答案 0 :(得分:4)

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

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

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)
编辑:快速注释 - REPLACE总是DELETES然后INSERT,因此在重负载中使用它永远不是一个好主意,因为它在删除时需要独占锁定,然后在插入时

某些数据库引擎

INSERT ... ON DUPLICATE KEY UPDATE ...

答案 1 :(得分:2)

您必须指定column-name

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

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

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