多个mysql选择查询

时间:2009-07-28 18:54:47

标签: mysql

我有一个带有由距离索引的zipcodes的数组。现在我需要选择披萨店 基于拉链,有些事情如下:

ziparray[]

foreach loop

SELECT * FROM location WHERE food='pizza' and zip='ziparray[]'

//do stuff

拉链阵列可以在时间上长达30或40个拉链,这意味着30或40个查询。 有一个更好的方法吗?我希望找出存储过程 这样我就可以发送参数并让它发回数据(如果可以的话)。

4 个答案:

答案 0 :(得分:4)

SELECT *
FROM location
WHERE food='pizza'
  and zip IN(90210, 55555, etc..)

答案 1 :(得分:0)

如何使用IN运算符?

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

答案 2 :(得分:0)

您可能需要考虑将该数组转换为IN子句,以便查询 成为SELECT * FROM位置WHERE food ='pizza'和zip in('03750','03532',..其他50个邮政编码)

答案 3 :(得分:0)

您可以使用for循环构造查询。这是PHP中的一个例子:

$zipArray = array();

$query = "SELECT * FROM location WHERE food='pizza' AND ( 1=2";


foreach($zipArray as $zip){
  $query .= "OR zip ='$zip' ";
}

$ query。=“)”;

1 = 2部分有点草率,你可以在foreach循环的每个添加结尾处添加一个OR,并使用一些函数来切断字符串的最后部分。