gpt4 book ai didi

php - 有效地检查组中是否存在任何值,它是哪一个?

转载 作者:行者123 更新时间:2023-11-29 01:45:18 25 4
gpt4 key购买 nike

我有一个包含 100 个值(将来可能会扩展)的列表,我需要将它们放入数据库中。但是,当其中之一已经存在时,我需要知道它是哪一个,并从其在表中的行中获取一些信息。这就是目标。但是我想不出一个有效的方法来做到这一点。

我想到的事情

  • 检查值是否存在。如果没有,请提交。这是逐值完成的。优点:简单。缺点:慢(最少 100 个查询,最多 200 个查询)
  • 与上述相反。如果由于重复键约束查询失败,则查询值。相同的优点和缺点
  • 一次插入所有值。运行重复检查器。优势:2(尽管很大)查询。缺点:困难,可能很慢

必须有更好的方法。有什么想法吗?

最佳答案

如果我理解正确,另一种选择是在一次查询中从数据库中选择与列表匹配的所有行,然后检查应用程序代码中的 array_intersect() 以查找数据库中已存在的行,或 array_diff() 来找到那些没有的。

// Your list into a comma-separated string
$your_list = implode(",", $your_list);

$dbexists = array();
$result = mysql_query("SELECT id FROM tbl WHERE id IN ($your_list)");
while ($row = mysql_fetch_assoc($result)) {
$dbexists[] = $row['id'];
}

// Already existing from your set:
$exists = array_intersect($your_list, $dbexists);

关于php - 有效地检查组中是否存在任何值,它是哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com