【发布时间】:2015-05-23 04:50:31
【问题描述】:
我在这个查询中使用了 Haversine 公式,它一直有效。目标是检查每一行是否在 $deflin 的值中具有某些类别,看起来像 $deflin = category1, category2, category3。结果将显示 50 公里内的行以及是否包含 $deflin 定义的任何类别。不知道如何使用 WHERE IN 或 LIKE 来解决这个问题。任何帮助表示赞赏。
用于查询的 MySQL
$awaka = "SELECT *,
( 6371 * acos( cos( radians(?) ) * cos( radians(job_latitude) ) *
cos(radians(?) - radians(job_longitude) ) + sin( radians(?) ) *
sin( radians(job_latitude) ) ) ) AS distance FROM job, users
WHERE job.listee_id = users.user_id AND job.job_category LIKE ?
HAVING distance < 50";
$result = $this->db->query($awaka, array($conlat, $conlong, $conlat, $deflin));
【问题讨论】:
-
你可以做
job.job_category IN ('category1','category2','category3')这将返回具有job_category的行,该job_category是category1、category2 或category3 -
如果
job_category是一个ID,您必须将您的查询更改为job.job_category IN ($deflin)。请注意,您不不想使用LIKE,因为此运算符在列中搜索模式。
标签: mysql sql sql-like where-in