将常量与数组(或多个值)进行比较。

时间:2011-08-19 21:49:42

标签: php mysql search

我正在尝试在25英里的范围内搜索zipcodes matchin。 假设我从我的函数中获得了10个邮政编码,这些邮政编码是真的。

现在我在这样的变量中有我的价值:

$zip_res = A0A 1B0, A0A 1G0, ...

列名是postal_code。

如何使用postal_code一次匹配所有值? 我不能使用循环,我必须一次完成。

欢迎任何建议。

修改

使用$ zip_res的MySQL语句

$sql=   "SELECT distinct(p.id), p.extra FROM practitioner p INNER JOIN practitioner_category pc ON pc.practitioner_id = p.id AND pc.category_id = ";
$sql .= "'" .$this->category. "' ";
$sql .= "AND p.primary_postal_code in " .$zip_res. " WHERE 1 AND p.status = 1 "; 

2 个答案:

答案 0 :(得分:0)

看起来您只是在寻找IN关键字:

SELECT * FROM TABLE_NAME WHERE POSTAL_CODE IN ($zip_res);

但是,请注意,您需要首先引用所有这些项目。因此,您可以在使用上述查询之前执行此操作:

$zip_res = "'" . str_replace(',',"','",$zip_res) . "'";

答案 1 :(得分:-1)

您可以尝试使用

select ... from ... where postal_code ALL($zip_res).

但我不确定因为按照手册你应该使用子查询。 见http://dev.mysql.com/doc/refman/5.5/en/all-subqueries.html