我的MySQL查询出了什么问题?(使用BETWEEN)

Seb*_*ian 0 mysql between

我正在尝试从我的数据库中选择位于用户半径10米范围内的商家.测试显示问题出在我的查询中(虽然没有抛出MySQL错误).变量$ lat和$ lng都是从Javascript导入的,它们也很好.我怀疑这个问题与我使用BETWEEN有关,因为这是我第一次使用它.有任何想法吗?

$r = 20; // in miles
$lat_min = $lat - ($r / 69);
$lat_max = $lat + ($r / 69);
$lng_min = $lng - $r / abs(cos(deg2rad($lat)) * 69);
$lng_max = $lng + $r / abs(cos(deg2rad($lat)) * 69);

$query = "SELECT name FROM businesses WHERE $lat BETWEEN $lat_min AND $lat_max $lng BETWEEN $lng_min AND $lng_max ORDER BY Rand() LIMIT 6";
Run Code Online (Sandbox Code Playgroud)

Vin*_*nie 8

查询应该是:

  SELECT name FROM businesses 
  WHERE THE_ACTUAL_NAME_OF_THE_COLUMN BETWEEN $lat_min AND $lat_max 
  AND THE_NAME_OF_THE_NEXT_COLUMN BETWEEN $lng_min AND $lng_max 
  ORDER BY Rand() LIMIT 6
Run Code Online (Sandbox Code Playgroud)

不知何故,$ lat看起来不像表中的列名.你也错过了一个AND.