我正在尝试在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 ";
答案 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