Php 数据不在表中的相关子查询
我使用的是MySql,有一种情况非常类似于相关子查询,只是内部查询中的数据不在数据库中,而是在PHP会话中 如果所有数据都在数据库中,查询将如下所示:Php 数据不在表中的相关子查询,php,mysql,correlated-subquery,Php,Mysql,Correlated Subquery,我使用的是MySql,有一种情况非常类似于相关子查询,只是内部查询中的数据不在数据库中,而是在PHP会话中 如果所有数据都在数据库中,查询将如下所示: SELECT * FROM tableA WHERE (tableA.valueA && ( SELECT valueB FROM tableB WHERE tableB.id = tableA.id)); 我的问题是我没有桌子。相反,我有一个PHP数组。如何将数组注入查询?我应该尝试在某个地方创建一个临时表吗?或者我应该尝试将
SELECT * FROM tableA WHERE (tableA.valueA && (
SELECT valueB FROM tableB WHERE tableB.id = tableA.id));
我的问题是我没有桌子。相反,我有一个PHP数组。如何将数组注入查询?我应该尝试在某个地方创建一个临时表吗?或者我应该尝试将数组声明为变量
PHP数组中的信息特定于每个用户,并且变化很快。此外,将有大量查询,因此性能是一个考虑因素。请参阅上面Wrikken的评论-我将此作为一个临时表,这似乎是一个很好的解决方案。MySQL没有数组概念,甚至
FIND_IN_SET
也可以使用位置标记,而不是像tableB.id
这样的“命名”条目。临时桌子似乎确实是一个很好的解决办法。尽管如此,如果实际数组没有那么大,您可能只想获取所有那些其中tableB.id=tableA.id
,并在PHP本身中进行valueA&&valueB
过滤。如果您想要一个临时表,只需将其设置为一个JOIN
,而不是一个子查询。谢谢Wrikken。你为什么不把这个贴出来作为答案呢?我很高兴接受它。