2017-01-17 47 views
-1

上顯示結果我正在構建的是一個用於搜索MySQL數據庫表的簡單表單,該表搜索輝煌的文本名稱,現在我需要搜索對於以浮點形式存儲的緯度數字。表標題是name,lat和lng。當用戶搜索匹配的緯度時,只有那些結果顯示在同一頁面上。任何幫助都是極好的。搜索mysql數據庫表中的「浮動」緯度數並在

$sql = "SELECT name,lat,lng FROM table WHERE name LIKE '%".$term."%' 
     OR lat MATCH '%".$term."%' OR lng MATCH '%".$term."%'"; 
+0

$ SQL =「SELECT'name','。 lat','lng'從表中的名稱LIKE'%「。$ term。」%'OR lat MATCH'%「。$ term。」%「或lng MATCH'%」。$ term。「%'」; – whizzer

+0

這是我的SQL查詢,但只有「名稱」的作品? – whizzer

+1

這不是'MATCH'works [見這裏](https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html ) – roberto06

回答

0
  • 更改爲DATATYPE緯度和經度爲一個數值。 Representation choices

  • 識別用戶是否在詢問緯度/經度與名稱。 OR的性能幾乎與領先的通配符一樣多。

  • 使用FULLTEXT索引以及MATCH(name) AGAINST('$term' in BOOLEAN MODE)可以有效地按名稱搜索。

  • 使用範圍;用戶不會輸入精確的緯度/經度值。還有四捨五入的問題。 lat BETWEEN $lat - 0.01 AND $lat + 0.01。 (這是約一公里的北/南;根據需要調整

您已經實現的大多數人,回來一些更多的建議/虐待後