我有一列 (location)
带有纬度/经度地理坐标。我需要的是两列,所以我使用此拆分此列:
left(location, locate(',', location)-1),
right(location, locate(',', location)-1),
我尝试了一些不同的列类型,并且在搜索网络时还发现了一个关于拆分中的尾随空格的问题,但它没有对此有任何启发。
列是 varchar50
作为源,两次 char25
作为目标。
MySQL 版本:5.5.27
如您在此示例中所见,结果并不一致。必须有一种方法可以在逗号上进行干净的拆分。
这不行,在第二个字符串的尾部逗号
Split A
'52.37924601809355,4.87214179273601'
Result A
'52.37924601809355' and ',4.87214179273601'
这是好东西,快乐时光
Split B
'52.37924969798386,4.872048790064259'
Result B
'52.37924969798386' and '4.872048790064259'
最佳答案
将您的右
命令更改为
substring(location, locate(',', location)+1)
否则,生成的子字符串取决于第二个子字符串的长度(在 ,
之后)。
right
命令用于提取固定长度的子串。
查看此 SQL Fiddle .
关于mysql - 在逗号上拆分不平衡的 GEO 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937217/