从MySQL表中选择值是数组的行?

时间:2011-03-29 05:19:44

标签: php mysql

我有一个包含ID列表的表。我使用查询来选择它,然后将其作为数组获取(我知道如何做到这一点)。然后我想从另一个表中选择行,其中ID位于先前获取的数组中。

我该怎么做?提前谢谢。

5 个答案:

答案 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)

您可以避免这样做并考虑JOIN表。一个查询将按ID获取匹配的记录。

示例

SELECT * FROM table1 t1 JOIN table2 t2 ON t1.ID=t2.ID

答案 4 :(得分:0)

假设$values是数组,可以使用mysql IN关键字和php implode函数构造查询

$sql = "SELECT a, b FROM table WHERE id IN (" . implode(", ",$values) . ")";

implode将使用“,”

连接数组的元素