在逗号上拆分不平衡的GEO字符串

时间:2014-02-21 14:32:13

标签: mysql sql

我有一个带有纬度/长地理坐标的列(location)。我需要的是两列,所以我用这个分开了这个列:

left(location, locate(',', location)-1),
right(location, locate(',', location)-1),

我尝试了一些不同的列类型,并且在搜索网页时发现了一个关于在分割中尾随空格的问题,但它没有对此有任何启发。

列为varchar50作为源,两次char25作为目标。 MySQL version: 5.5.27


您可以在此示例中看到结果不一致。必须有一种方法可以对逗号进行干净的拆分。

这不行,第二个字符串尾随逗号

  

拆分A
  '52 .37924601809355,4.87214179273601'

Result A
'52.37924601809355' and ',4.87214179273601'


这是好事,快乐时光

  

拆分B
  '52 .37924969798386,4.872048790064259'

Result B
'52.37924969798386' and '4.872048790064259'

1 个答案:

答案 0 :(得分:2)

right命令更改为

substring(location, locate(',', location)+1)

否则,生成的子字符串取决于第二个子字符串的长度(在,之后)。

命令right用于提取固定长度的子字符串。

请参阅此SQL Fiddle