假设我在PHP数组中有一个字符串数组,名为$foo,有几百个条目,我有一个MySQL表’people’,它有一个名为’name’的字段,有几千个条目.在没有为$foo中的每个字符串提交查询的情况下,找出$foo中哪些字符串不是“人员”条目中的“名称”的有效方法是什么?
所以我想知道$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;