gpt4 book ai didi

php - 检查 MySQL 中不存在的大数组元素的最快方法

转载 作者:可可西里 更新时间:2023-11-01 08:04:01 24 4
gpt4 key购买 nike

我需要检查数组中的哪些元素不存在于 MySQL 表中。我正在进行个别查询,但它正在炸毁我的 MySQL。

最佳答案

关于此线程的一些答案和评论误解了 OP 的要求。 OP 没有要求 MySQL 表中的值不存在于您的 PHP 数组中。 OP 要求相反:MySQL 表中不存在的 PHP 数组中的值。

将值加载到临时表中。我假设一个变量 $array 包含整数。这是一次插入多行的代码。如果这将生成比 max_allowed_pa​​cket 更长的 INSERT 语句,则分批加载数组。

$pdo->query("CREATE TEMPORARY TABLE values_to_search (value INT PRIMARY KEY)");

$sql = "INSERT INTO values_to_search (value) VALUES "
. implode(",", array_fill(1, count($array), "(?)"));
$stmt = $pdo->prepare($sql);
$stmt->execute($array);

对您正在搜索的表执行外部联接。如果没有匹配项,则该值不存在。

$sql = "SELECT v.value
FROM values_to_search AS v
LEFT OUTER JOIN mytable t ON v.value = t.value
WHERE t.value IS NULL";
$stmt = $pdo->query($sql);
$results = $stmt->fetchAll(PDO::FETCH_NUM);

关于php - 检查 MySQL 中不存在的大数组元素的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774341/

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