我试图通过包含在db列中的单词来过滤sql查询。php mysql查询like(contains)
这是工作(请不要告诉我有错......它不与凡工作)
$query = sprintf("SELECT *, (3959 * acos(cos(radians('%s')) * cos(radians(`Lat`)) * cos(radians(`Long`) - radians('%s')) + sin(radians('%s')) * sin(radians(`Lat`)))) AS distance FROM Tutors HAVING distance < '%s' ORDER BY distance",
mysql_real_escape_string($lat),
mysql_real_escape_string($lng),
mysql_real_escape_string($lat),
mysql_real_escape_string($radius));
$result = mysql_query($query, $dbConn);
我想补充一点,如:
$query = sprintf("SELECT *, (3959 * acos(cos(radians('%s')) * cos(radians(`Lat`)) * cos(radians(`Long`) - radians('%s')) + sin(radians('%s')) * sin(radians(`Lat`)))) AS distance FROM Tutors HAVING distance < '%s' AND SubjectList like '%s' ORDER BY distance",
mysql_real_escape_string($lat),
mysql_real_escape_string($lng),
mysql_real_escape_string($lat),
mysql_real_escape_string($radius),
mysql_real_escape_string($subject));
$result = mysql_query($query, $dbConn);
的printf真复杂的查询格式,所以请告诉你只是想看看。 – SIFE 2011-04-10 02:28:19
@EmCo:错了。你可以随时使用'having'。你唯一一次使用'group by'是你正在使用一个聚合函数 – 2011-04-10 02:37:59
我想知道如果问题是我正在使用escape_string%s并且在使用LIKE时通常是%biology% – Jeffrey 2011-04-10 02:41:51