gpt4 book ai didi

php - INSERT ON DUPLICATE KEY UPDATE 多行,检查每行的重复项

转载 作者:行者123 更新时间:2023-11-29 17:59:19 24 4
gpt4 key购买 nike

以下代码的预期行为是,对于每一行,它检查是否存在重复项,如果存在,则更新而不是插入。它分别对每一行执行此操作,这意味着查找某一行的重复项不会导致后续所有其他行的更新。唯一键是member_id。

INSERT INTO table 
(member_id, member_name, stat1, stat2) VALUES
('1', 'user1', '1411', '1410'),
('15', 'user2', '177', '179'),
('83', 'user3', '517', '832'),
('184', 'user4', '805', '1165'),
('304', 'user5', '708', '705')
ON DUPLICATE KEY UPDATE
stat1 = VALUES(stat1),
stat2 = VALUES(stat2)

然而,这似乎是从它发现member_id的重复键的第一刻开始更新。

例如user2 已经存在,因此不要执行 INSERT,而是执行 UPDATE。但随后它会对 user3、user4、user5 执行 UPDATE,即使它们可能不存在。这会导致以下错误:

Unknown column 'user3' in 'field list'

如何确保它检查每行是否重复,如果没有重复,则插入?

编辑:我的查询的更准确片段:

INSERT INTO reputation_p_month (member_id, member_name, january_2018_rep, acc_january_2018_rep) VALUES
('1', 'GreatJackal', '1411', '1410'),
('15', 'wetletus', '177', '177'),
('83', 'strongandbald', '517', '517'),
('14375', 'Newer', '0', '0'),
('14379', 'RobsenMeister', '0', '0'),
(14405, Griffin, 0, 0)
ON DUPLICATE KEY UPDATE
january_2018_rep = VALUES(january_2018_rep),
acc_january_2018_rep = VALUES(acc_january_2018_rep)

控制台出现以下错误:

Uncaught SyntaxError: missing ) after argument list

'Debug Objects: Error updating records for REP: Unknown column 'Griffin' in 'field list''

最佳答案

您的查询非常好,应该完全产生您期望的结果。

错误信息

Unknown column 'user3' in 'field list'

实际上意味着,您的查询在某个时刻将Value:user3视为column

从发布的查询中,我们无法确定问题,我猜你以某种方式简化/混淆了查询,但 postet 示例是偶然正确的。

检查是否要插入用反引号括起来的 user3 的用户值,例如

`用户3`

而不是

'用户3'

(反勾号用于列名称,而不是值,这将准确地生成您所面临的错误消息)

enter image description here

关于php - INSERT ON DUPLICATE KEY UPDATE 多行,检查每行的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531365/

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