2012-02-08 67 views
0

在我的phpmyadmin SQL數據庫中,我有數百個Google地圖網址。我想自動將它們更改爲lat和lng。SQL |將Google地圖網址轉換爲滯後和延遲

例如:

http://maps.google.com.hk/maps?f=q&source=embed&hl=zh-TW&geocode;=&q=軒尼詩道+438+號&aq;=&sll=22.279427,114.181616&sspn=0.012191,0.016544&brcurrent=3,0x34040055b36dac7f:0x23fa8b1e7120c6a,0,0x3404004c435d4ad9:0x6e0e524894ae1a66&ie=UTF8&hq;=&hnear;=軒尼詩道438號&ll=22.279429,114.181622&spn=0.000496,0.000587&z=19&iwloc=A 

我如何寫一個SQL指令提取緯度和經度出來的嗎? 所有的緯度和經度是後&ll= 在這個例子中:

&ll=22.279429,114.181622 

如何我寫的SQL腳本只&ll後搜索數字?

+1

最後一個參數我想你應該與解析PHP方法的URL會留下更多的情況: http://php.net/manual/en/function.parse-url.php – 2012-02-08 19:08:21

+0

這取決於。你正在使用哪個數據庫? MySQL的? Postgres的? MSSQL?等請發佈哪一個 – Bohemian 2012-02-08 19:36:42

+0

我正在使用mysql。我製作了三個表格,一個是谷歌網址,另外兩個是lat和lng。我想通過在phpMyadmin中運行SQL查詢從google URL中提取lat和lng。任何想法?謝謝。 – user1197527 2012-02-09 07:32:21

回答

0

這可能看起來有點毛,但應該給你你需要的例子。見SQL Fiddle Demo。其中ll參數在URL中的?後直接發生或在列表中練習讀者:-)

SELECT url, 
     SUBSTRING(url, 
       LOCATE('&ll=', url) + 4, 
       LOCATE(',', url, LOCATE('&ll=', url)) - 
        (LOCATE('&ll=', url) + 4)) AS lat, 
     SUBSTRING(url, 
       LOCATE(',', url, LOCATE('&ll=', url)) + 1, 
       LOCATE('&', url, LOCATE(',', url, LOCATE('&ll=', url))) - 
        (LOCATE(',', url, LOCATE('&ll=', url)) + 1)) AS lng 
FROM mapurls