我有一个带有纬度/长地理坐标的列(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'
答案 0 :(得分:2)
将right
命令更改为
substring(location, locate(',', location)+1)
否则,生成的子字符串取决于第二个子字符串的长度(在,
之后)。
命令right
用于提取固定长度的子字符串。
请参阅此SQL Fiddle。