Pra*_*ant 192 mysql sql duplicates
我有一个SQL查询,我想在单个查询中插入多行.所以我使用了类似的东西:
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
Run Code Online (Sandbox Code Playgroud)
问题是当我执行这个查询时,我想检查是否应该检查一个UNIQUE
密钥(不是PRIMARY KEY
),例如'name'
上面的密钥,如果'name'
已经存在,则应该更新相应的整行,否则插入.
例如,在下面的示例中,如果'Katrina'
数据库中已存在,则应更新整个行,而不管字段的数量.如果'Samia'
不存在,则应插入该行.
我想过使用:
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29) ON DUPLICATE KEY UPDATE
Run Code Online (Sandbox Code Playgroud)
这是陷阱.我陷入困境,对如何继续感到困惑.我有多行要一次插入/更新.请给我一个指示.谢谢.
Pet*_*ang 448
使用关键字VALUES
来引用新值(请参阅文档).
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)
ON DUPLICATE KEY UPDATE
age = VALUES(age),
...
Run Code Online (Sandbox Code Playgroud)