我正在使用php,需要在同一个表和列上执行一堆select语句,并获取与这些值匹配的行。
我拥有我在数组中搜索的所有值,现在我只是循环并分别对每个值执行select语句。我怎么能将这一切都放在一个select语句中并抛弃循环?
现在就是这样:
for (yaddah yaddah yahhah){
SELECT * FROM scan WHERE order=var[$i];
}
答案 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)
使用IN
和implode
,如下所示:
$sql = "SELECT * FROM `scan` WHERE `order` IN (" . implode(',', $array) . ")";
答案 2 :(得分:0)
查看SQL的In Operator