我有一个包含ID列表的表。我使用查询来选择它,然后将其作为数组获取(我知道如何做到这一点)。然后我想从另一个表中选择行,其中ID位于先前获取的数组中。
我该怎么做?提前谢谢。
答案 0 :(得分:6)
您最有可能想要进行WHERE field IN (...)
类型查询。对于WHERE field=X or field=Y or field=Z or ...
子句中列出的每个值,它基本上相当于IN
。
鉴于您已经拥有了一系列ID,最简单的方法是构建这样的查询:
$where_in = implode(',', $ids_array);
$query = "SELECT ... FROM yourtable WHERE idfield IN ($where_in);";
通常的条件适用 - 注意SQL注入漏洞,总是检查查询结果是否失败等等......
答案 1 :(得分:3)
您可以在一个查询中执行此操作
像这样的事情SELECT table2.id FROM table2 WHERE table2.id IN (SELECT table1.id FROM table1 WHERE blablabla)
答案 2 :(得分:1)
select value1,value2 from table2 where id in (1,2,3,4,5)
答案 3 :(得分:1)
答案 4 :(得分:0)
假设$values
是数组,可以使用mysql IN关键字和php implode函数构造查询
$sql = "SELECT a, b FROM table WHERE id IN (" . implode(", ",$values) . ")";
implode将使用“,”
连接数组的元素