全部, 我正在查找邮政编码,然后查找给定半径内的所有其他邮政编码。我正在尝试对数据库进行一次调用,因此我应该使用哪种查询?我正在考虑使用OR子句但是想知道是否有人对此进行查询优化有任何更好的想法?我想过做这样的事情,但任何建议都会受到赞赏。感谢
$zipArray = $zipLoc->inradius($_SESSION['pav_event_zip_code'],50);
$total_zips = count($zipArray);
$sql = "Select * from vendor where vendor_zip='$zipArray[0]'";
for($i=1;$i<$total_zips;$i++){
$sql. = "OR vendor_zip='$zipArray[$i]'";
}
答案 0 :(得分:1)
你可以使用IN语句,虽然它不会更快,但它肯定更容易阅读:
$zipArray = $zipLoc->inradius($_SESSION['pav_event_zip_code'],50);
$zipArray[] = -1; // make sure the IN Statement does not fail
$sql = 'SELECT * FROM vendor WHERE vendor_zip IN ('.implode(',',$zipArray).')';
确保您已将列供应商zip索引