创建带有数组的SQL查询

时间:2010-03-04 21:56:56

标签: php mysql

我正在使用php,需要在同一个表和列上执行一堆select语句,并获取与这些值匹配的行。

我拥有我在数组中搜索的所有值,现在我只是循环并分别对每个值执行select语句。我怎么能将这一切都放在一个select语句中并抛弃循环?

现在就是这样:

for (yaddah yaddah yahhah){
    SELECT * FROM scan WHERE order=var[$i];
}

3 个答案:

答案 0 :(得分:3)

您可以使用IN指定值列表:

select * 
from scan
whenre order IN (1, 5, 46, 78)


您可以使用implode函数获取此类列表:

$array = array(1, 5, 46, 78);
$list_str = implode(', ', $array);
// $list_str is now "1, 5, 46, 78"

$query = "select *
from scan
where order IN ($list_str)
";

之后,在你的PHP脚本中,只需要获取几行而不是一行。

答案 1 :(得分:1)

使用INimplode,如下所示:

$sql = "SELECT * FROM `scan` WHERE `order` IN (" . implode(',', $array) . ")";

答案 2 :(得分:0)

查看SQL的In Operator