潜在的数据类型问题,正负值之间的sql

时间:2017-03-30 11:29:09

标签: php mysql

是的,之前我问了一个类似的问题,但我想我可能对这个问题有了更好的了解,应该能够更好地写出这个问题。

所以情况就是这样,我已经在一个起点附近做了大约20英里。我在数据库中搜索开始lat的任一侧的这个数量并开始很长时间。一旦我得到结果,我将通过一个不同的函数来检查确切的距离并继续。

所以这里有一些数据,这就是我要查询的内容。

$lat1 = 55.02
$lat2 = 53.04
$long1 = 1.04
$long2 = -0.43

我正在使用的查询:

SELECT * FROM table WHERE (LatCo BETWEEN :lat1 AND :lat2) AND (LongCo BETWEEN :long1 AND :long2)

我将变量绑定为标准的PDO方式。

$stmt->bindParam(":lat1", $lat1);
$stmt->bindParam(":lat2", $lat2);
$stmt->bindParam(":long1", $long1);
$stmt->bindParam(":long2", $long2);

我的表中的一些示例数据和预期结果:

Name  |  Lat  | Long  | Current Outcome
PL1   |54.023 |0.53   | Correct, pulls record
PL2   |58.125 |1.64   | Correct, does not pull record
PL3   |53.875 |-0.46  | Incorrect, pulls record

所以我对PL3进行了一些快速测试,看起来它将它拉到Long = =或高于-0.46的位置,但是如果它是-0.47那么它就不会拉动记录,即使它应该是。

我认为这可能是表中的数据类型问题,目前设置为varchar

0 个答案:

没有答案