Php 当使用MySQL INSERT时——在DUPLICATE上,如何判断MySQL是运行INSERT还是UPDATE?

Php 当使用MySQL INSERT时——在DUPLICATE上,如何判断MySQL是运行INSERT还是UPDATE?,php,mysql,mysqli,Php,Mysql,Mysqli,这个问题真的很简单 对于PHP mysqli,我使用INSERT INTO语句和ON DUPLICATE KEY UPDATE选项 我想知道有没有一种方法可以很容易地判断查询是运行INSERT还是UPDATE选项 我几乎可以通过评估insert_id来实现这一点,但是有没有一种更“本地”的方法来实现这一点,比如mysqli反馈?您想检查重复数据是否在mysql中吗?我认为没有任何方法可以判断。如果您需要知道,您应该自己实现逻辑,使用SELECT,然后是INSERT或UPDATE,这取决于它是否找

这个问题真的很简单

对于PHP mysqli,我使用INSERT INTO语句和ON DUPLICATE KEY UPDATE选项

我想知道有没有一种方法可以很容易地判断查询是运行INSERT还是UPDATE选项


我几乎可以通过评估insert_id来实现这一点,但是有没有一种更“本地”的方法来实现这一点,比如mysqli反馈?

您想检查重复数据是否在mysql中吗?我认为没有任何方法可以判断。如果您需要知道,您应该自己实现逻辑,使用
SELECT
,然后是
INSERT
UPDATE
,这取决于它是否找到了任何东西。好吧,MySQL本身不提供此信息,因此,
mysqli
无法获得它。我只是想到了一件事:您可以在
ON DUPLICATE KEY UPDATE
子句中调用一个存储过程。这可能会更新另一个表,您可以在以后检查。感谢各位的建议@bramar,这是我第一次尝试的东西,但是我必须在100或更多的循环中运行这个。。所以我想最小化SQL查询。。因此在重复例程上使用。。无论如何,我认为这一切都是一个漫长的过程。。我想我会求助于获取最后一个插入id方法。。tnx全部