我正在尝试使用 mysql select 仅返回某个列“类别”包含 id 的结果,例如在字段中可能有“1,2,4”。我想使用一个变量来查看该 id 是否存在于该字段中。
到目前为止的代码:
function returnSQLByCategory($criteria) {
$lat = $criteria['lat'];
$lng = $criteria['lng'];
$categoryid = $criteria['categoryid'];
$page_number = $criteria['page_number'];
$nb_display = $criteria['nb_display'];
//if($page_number=='') $page_number=1;
//if($nb_display=='') $nb_display=10;
$start = ($page_number*$nb_display)-$nb_display;
$sql = "SELECT company, name, lng, lat, address, city, country, zip, link,
( 3959 * acos( cos( radians('".mysql_real_escape_string($lat)."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".mysql_real_escape_string($lng)."') ) + sin( radians('".mysql_real_escape_string($lat)."') ) * sin( radians( lat ) ) ) ) AS distance
FROM locations WHERE categoryid LIKE '%$categoryid%'";
$sql .= " ORDER BY distance";
return $sql;
}
这不起作用,并且必须返回“1”,因为我只能看到 categoryid 为“1”的行。如果我手动输入语句“2”或示例,它会按预期工作!
非常感谢帮助,谢谢。