[英]Help with a SQL Query
我正在尋找一個SQLite查詢,它將為lng返回大於或小於0.014763的值,為lat返回0.008830。 我正在使用以下代碼......
$latupp = $_REQUEST['currlat'] + 0.008830;
$latlow = $_REQUEST['currlat'] - 0.008830;
$lngupp = $_REQUEST['currlng'] + 0.014763;
$lnglow = $_REQUEST['currlng'] - 0.014763;
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` > $latlow AND
`lat` < $latupp OR
`lng` > $lnglow AND
`lng` < $lngupp;") or die(mysql_error());
但它返回的結果不正確,例如結果大於或小於0.1441209。 我無法弄清楚原因。 有沒有人有什么建議?
也許...
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` > $latlow AND
`lat` < $latupp AND
`lng` > $lnglow AND
`lng` < $lngupp;") or die(mysql_error());
這應該工作:
$latupp = $_REQUEST['currlat'] + 0.008830;
$latlow = $_REQUEST['currlat'] - 0.008830;
$lngupp = $_REQUEST['currlng'] + 0.014763;
$lnglow = $_REQUEST['currlng'] - 0.014763;
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` BETWEEN $latlow AND $latupp
AND
`lng` BETWEEN $lnglow AND $lngupp;") or die(mysql_error());
也許你需要括號來分隔第一和第二部分(不能在這里測試)。
通過使用“OR”連接lat和long約束,你犯了一個小錯誤。 你的命令說:
給我所有記錄:
要么
或兩者
試試這個。
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` >". $latlow. "AND
`lat` <". $latupp. "OR
`lng` >". $lnglow. "AND
`lng` <". $lngupp.";")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.