如何使用MySQL字符串函数在单词中插入空格?

时间:2012-04-02 13:33:38

标签: mysql regex function select logic

如何使用MySQL字符串在单词中插入空格 功能

我有一个GPS坐标保存在我的gps栏中

S2829.080,E2850.683

我希望输出为:

S28 29.080,E28 50.683

任何建议都非常感谢。

由于

解决方案更新:

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

SELECT CONCAT_WS(' ', LEFT(SPLIT_STR("S2829.080,E2850.683",',',1),3),MID(SPLIT_STR("S2829.080,E2850.683",',',1),4,LENGTH(SPLIT_STR("S2829.080,E2850.683",',',1)))) AS
latitude;

SELECT CONCAT_WS(' ', LEFT(SPLIT_STR("S2829.080,E2850.683",',',1),3),MID(SPLIT_STR("S2829.080,E2850.683",',',2),4,LENGTH(SPLIT_STR("S2829.080,E2850.683",',',2)))) AS
longitude;

我已经“规范化”了我的数据库,并通过添加2列来更改JS表单 经度和纬度。

谢谢大家

2 个答案:

答案 0 :(得分:1)

尝试以下:

使用concat()left()mid() mysql函数:

update table set columnname=concat(LEFT(columnname,3),' ',MID(columnname,4,LENGTH(columnname)))

假设您的空间将始终位于列值中的3个字符

之后

顺便说一句,如果在单列下存储逗号分隔值,它将无法工作。这就是这种表模式的缺点。

您应该Normalize您的数据库

您应该创建父子表而不是逗号分隔值

答案 1 :(得分:0)

如果您需要拆分前3个字符,其余部分是单向

SELECT CONCAT_WS( " ", LEFT( columname 3 ) , SUBSTRING( columnname FROM 4 ) ) FROM tablename