gpt4 book ai didi

php - 关于重复键更新 - 多列

转载 作者:IT老高 更新时间:2023-10-28 23:44:22 26 4
gpt4 key购买 nike

使用 insert... on duplicate key update 时,更新多列的语法是什么?

INSERT INTO table1 (col1, col2, col3, col4) VALUES (’$val1’, ‘$val2’, ‘$val3’, ‘$val4’)
ON DUPLICATE KEY UPDATE col2=‘$val2’, col3=‘$val3’, col4=‘$val4’ // <-- not sure

更新:我在 PHP 中使用它。由于这是一个语法问题,因此非常相关。

$result = mysql_query("INSERT INTO table1 (col1, col2, col3, col4) 
VALUES (’$val1’, ‘$val2’, ‘$val3’, ‘$val4’)
ON DUPLICATE KEY UPDATE (col2=‘$val2’, col3=‘$val3’, col4=‘$val4’)")

同样,不确定最后一部分是否与“更新”有关。

最佳答案

嗯,这是旧的。但是当然你只需要提供一个值一次,没有理由在查询中第二次添加它(这对于多个插入或准备好的语句很方便):

INSERT INTO table1
(col1, col2, col3, col4)
VALUES
('val1', 'val2', 'val3', 'val4')
ON DUPLICATE KEY UPDATE
col2=VALUES(col2),
col3=VALUES(col3) [,...]

它的优势在于它仍然适用于多重插入语句:

INSERT INTO table1
(col1, col2, col3, col4)
VALUES
('val1', 'val2', 'val3', 'val4'),
('val5', 'val6', 'val7', 'val8'),
('val9', 'val10', 'val11', 'val12')
ON DUPLICATE KEY UPDATE
col2=VALUES(col2),
col3=VALUES(col3) [,...]

一个现代 PHP 示例:

$sql = "INSERT INTO table1 (col1, col2, col3, col4) VALUES (?,?,?,?)
ON DUPLICATE KEY UPDATE
col2=VALUES(col2),
col3=VALUES(col3),
col4=VALUES(col4)";
$db->prepare($sql)->execute([$val1, $val2, $val3, $val4]);

关于php - 关于重复键更新 - 多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8991593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com