假设我在名为 $foo 的 php 数组中有一个包含几百个条目的字符串数组,并且我有一个 MySQL 表“people”,它有一个名为“name”的字段,其中包含几千个条目。在不提交对 $foo 中的每个字符串的查询的情况下,找出 $foo 中哪些字符串不是 'people' 条目中的 'name' 的有效方法是什么?

所以我想找出 $foo 中的哪些字符串尚未输入到“people”中。

请注意,很明显,所有数据都必须一次出现在一个盒子上。这样做的目标是同时最大限度地减少查询次数和 php 处理量。

最佳答案

CREATE TEMPORARY TABLE PhpArray (name varchar(50));

-- you can probably do this more efficiently
INSERT INTO PhpArray VALUES ($foo[0]), ($foo[1]), ...;

SELECT People.*
FROM People
 LEFT OUTER JOIN PhpArray USING (name)
WHERE PhpArray.name IS NULL;

关于php - 如何使用 MySQL 表过滤 php 数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/220432/

10-12 00:04
查看更多