如何使用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表单 经度和纬度。
谢谢大家
答案 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