3

问题:

我正在构建一个谷歌结帐回调接口。我遇到的问题是谷歌同时将 2 个响应发送回站点,并且站点处理了这两个响应,所以我最终得到了 2 个更新。编写代码以检查条目是否存在,以及它是否没有根据需要插入或更新。

时间戳将是相同的,它将发布 2 笔交易。我在 Innodb 有数据库,但我将其更改为 MyISAM,希望它能解决问题。

问题:

是否可以选择 SQL 查询,然后根据条件进行更新。或者我还能做些什么来解决这个问题?

4

2 回答 2

3

您可以使用EXIST仅对select返回结果执行更新

 UPDATE TABLE1 SET col=`value` 
 where exists (select 1 from TABLE2 where condition)
于 2012-09-25T23:13:28.983 回答
0

我认为您需要澄清“Google 同时发送 2 个响应”的含义。

我假设您指的是Google Checkout API - 如果是这样,Google 发送的每个通知都代表“某事”。您必须确定是什么Notification- 换句话说,您可能会根据您对 Google 发送的内容的看法“修复”一个不存在的问题(而不是注意到它们每个Notification都是不同的)。

嗯……

于 2012-09-26T14:28:44.517 回答