如何使用 MySQL 字符串函数在单词中插入空格?
Posted
技术标签:
【中文标题】如何使用 MySQL 字符串函数在单词中插入空格?【英文标题】:How do I insert a space in a word using a MySQL string function? 【发布时间】:2012-04-16 04:10:33 【问题描述】:如何使用 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 表单 经度和纬度。
谢谢大家
【问题讨论】:
模式是否总是一样的:3chars, space, number, comma, 3chars, space, number? 嗨迈克尔,是的,模式总是一样的。 JS 应用程序有一个正则表达式来检查这种模式,但它实施得有点晚。 /A-Z1[0-9]2\s[0-9]2\.[0-9]3/ 【参考方案1】:试试下面:
使用concat()
,left()
,mid()
mysql函数:
update table set columnname=concat(LEFT(columnname,3),' ',MID(columnname,4,LENGTH(columnname)))
假设您的空间总是在列值中的 3 个字符之后
顺便说一句,如果您将逗号分隔的值存储在单列下,它将不起作用。这是这种表模式的缺点。
你应该Normalize
你的数据库
您应该创建父子表而不是逗号分隔值
【讨论】:
感谢您的帮助,我已经用解决方案更新了我的问题。【参考方案2】:如果您需要拆分前 3 个字符,其余的在这里是一种方式
SELECT CONCAT_WS( " ", LEFT( columname 3 ) , SUBSTRING( columnname FROM 4 ) ) FROM tablename
【讨论】:
以上是关于如何使用 MySQL 字符串函数在单词中插入空格?的主要内容,如果未能解决你的问题,请参考以下文章