2012-02-08 35 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