0

好的,问题不是关于如何返回 ID,而更像是如何跳过它......我有一种情况,我使用 last_insert_id() 来获取最后插入的行的 id,但如果我想得到一个零没有插入任何行。问题如下:

  • 我插入...更新一些记录:因为新插入行,所以返回所有 ID
  • 然后我重复这个过程:这次不返回 ID。耶!这正是我想要的
  • 我更改了一个列值并重复该过程:但是现在返回了我已更改列值的行的 ID。这让我非常生气。如果 mysql 没有插入任何内容,我根本不希望它返回 ID

所以总结一下:

  • 插入新记录时:返回 ID
  • 插入相同记录时:不返回 ID
  • 更新值时:返回更新行的更新 ID :(

有解决方法吗?

我知道会发生这种情况,因为 mysql 可能不会对相同的记录执行更新,但仍然......我很想知道如何解决这个问题。

4

1 回答 1

0

您应该能够检索插入的行数并使用它来确定是否插入了任何内容。如果您使用“原始”查询(即没有可能提供插入行数的 API),看起来 ROW_COUNT() 可能会给您想要的。

于 2012-11-28T13:06:19.257 回答