gpt4 book ai didi

php - 在 mysql 的插入中使用更新

转载 作者:行者123 更新时间:2023-11-29 18:35:44 25 4
gpt4 key购买 nike

我有一个与选择子查询一起运行的插入查询。这基本上需要“ fork ”它找到并插入的行的副本。这部分有效,但没有垃圾收集。我在数据库事件上运行它,因此它根据条件查找记录,然后将其作为新记录进行 fork ...再次运行将其 fork 。任何想法,因此它找到的记录可能会被更新或停止循环的方法。

INSERT INTO charity (pid, itemname, newval)
SELECT cha.pid, cha.itemname, 'ref')
FROM charity AS cha, entry AS ent
WHERE cha.pid = ent.id
AND cha.status = 'Pending'
AND cha.type = 'CHAR'
AND ent.dates < CURDATE()
AND ent.total > (SELECT sum(price) FROM charity WHERE cha.type = 'CHAR')

最佳答案

您可以对表进行左连接以匹配 fork 记录并排除那些已 fork 的记录。

INSERT INTO charity (pid, itemname, newval)
SELECT cha.pid, cha.itemname, 'ref')
FROM charity AS cha, entry AS ent
left outer join charity as cha2
on cha2.pid=cha.pid and cha2.itemname = cha.itemname and
cha2.newval='ref'
WHERE cha.pid = ent.id
AND cha.status = 'Pending'
AND cha.type = 'CHAR'
AND ent.dates < CURDATE()
AND ent.total > (SELECT sum(price) FROM charity WHERE cha.type = 'CHAR')
AND cha2.pid IS NULL

警告 - 未经测试。我没有足够的信息来充分指定可能已创建的记录。

您可能还需要在 join on 子句中添加进一步的测试。基本上,这会定位尚未创建关联新记录的记录 - 在本例中,是一个带有 newval='ref' 的 reford,其中其他 2 个字段匹配。

关于php - 在 mysql 的插入中使用更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316153/

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