我有一個請求(在PHP代碼):MySQL:如何按等級和距離排序?
$sql =
"SELECT id_, name_, status, starsCount, photoFilename, "
. "(3959 * acos(cos(radians('$lastPosition_lat')) *
cos(radians(objLatitude)) *
cos(radians(objLongitude) -
radians('$lastPosition_long')) + "
. "sin(radians('$lastPosition_lat')) *
sin(radians(objLatitude))))
AS distance
FROM markets "
. "ORDER BY distance ASC, starsCount DESC "
. "LIMIT $itemsWatched,15";
我需要通過排名分類附近的市場(介於1和5星)。
或者,我可以得到當前用戶的最小和最大範圍內的另一部分市場,並在第二個查詢按排名獲得排序。但我認爲,這種方式會非常緩慢。
你能幫助我獲得通過快速查詢距離和排名分類市場的名單?
我的情況比較簡單,比你想象的。評級是手錶的計數(用戶唯一訪問[INT])。所以,我試圖按距離排序並計數(INT值)。我現在不能更改數據庫並插入新的屬性,如「距離/評級」等公式。 :(對不起,我的俄語。 –
如果我嘗試一些FORMUL到calc下,它會看起來像最小和最大距離的變體(我關於它的問題寫),所以這將是並不強大,因爲我看到。我沒有獲得物品的固定半徑。我通過已經觀看過的物品數量獲得物品:$ itemsWatched –