【问题标题】:PHP - Skip if already exists [duplicate]PHP - 如果已经存在则跳过[重复]
【发布时间】:2016-05-30 20:23:15
【问题描述】:

我一直在使用 JOIN 比较 2 个表,并将结果存储在另一个名为 macadd 的表中。每次我运行我的代码时,它都会在表macadd 中生成重复记录。我怎样才能停止一次又一次地存储相同的记录。 这是生成重复的代码:

$query = mysqli_query($conn, "insert into macadd (mac)
select volley.mac from volley
inner join savedemail on savedemail.email = volley.email");

As 此查询正在比较行。我在这里完全没有逻辑,我怎样才能从这个 sql 查询中创建一个变量。这样我就可以检查天气记录是否存在

【问题讨论】:

  • 如果不存在,是否要插入? stackoverflow.com/questions/3164505/…
  • 是的!当然如果不存在我想插入
  • 我不能在这里使用(mysqli_num_rows($query) > 0),因为没有变量可以用来验证它,
  • 您需要将您的查询分成 2 个其他查询。您检查的第一个存在,如果不存在,则运行第二个查询:insert

标签: php mysql sql database compare


【解决方案1】:

您想使用 INSERT IGNORE。

$query = mysqli_query($conn, "insert ignore into macadd (mac)
select volley.mac from volley
inner join savedemail on savedemail.email = volley.email");

【讨论】:

  • MySql有这样的表达吗?我知道“ON DUPLICATE KEY UPDATE”或“INSERT ..WHERE NOT EXISTS(....)”,从来没有听说过
  • @jim 即使不插入记录也无法正常工作
  • @shreyash-singh 对不起,我的意思是插入忽略。我已经更新了我的答案。
猜你喜欢
  • 2019-10-18
  • 2012-09-03
  • 2011-06-24
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
相关资源
最近更新 更多