【发布时间】:2021-02-04 09:06:09
【问题描述】:
如果表中的值不是同一行,我想插入,但是如果存在具有相同值的行,我只想更新一个将 +1 添加到当前值的行。我有当前代码,但它似乎没有更新存在的行中的值。
INSERT INTO raport(id, wykonawca, tytul, czas_trwania, powtorzenia)
VALUES('','$wykonawca2','$tytul2','$czas_trwania2', '$powtorzenia2')
ON DUPLICATE KEY UPDATE wykonawca='$wykonawca2', tytul='$tytul2', czas_trwania='$czas_trwania2',
powtorzenia='$powtorzenia2'+1
【问题讨论】:
-
哪一列是关键?
-
@jemeson 2012 powtorzenia
-
有什么事吗?是否有任何错误信息?
powtorzenia='$powtorzenia2'+1可能应该是powtorzenia=powtorzenia+1添加花括号怎么样:wykonawca='{$wykonawca2}'或wykonawca="{$wykonawca2}"。您还应该在INSERT INTO部分中定义id,否则没有要更新的id。 (您使用id检查相似性,而不是其他值,如 wykonawca 或 tytul。) -
我看不到 sql 有任何明显错误(除了大量的 sql 注入问题)。这表明您没有传递您认为的数据。您需要进行一些调试并根据您的发现更新问题,并且可能需要更多代码,例如调用查询的位置以及它拥有什么数据/从哪里获取它
-
另外,您确定这是您的密钥吗(例如,数据库密钥不仅仅是您要检查的信息),因为通常不会更改关键点关系 - 如果
powtorzenia是关键,然后你更新它,那么你必须更新每个其他表中对它的每个引用。我怀疑你的表会自动增加 id?而且我怀疑这是每次插入时永远不会重复的实际密钥。但我可能是错的