MySQL 8.0.17 版 - 仅替换字符串中的第一个空格

时间:2021-03-16 11:01:44

标签: mysql

在表中存储了一个数据库 MySql version 8.0.17 我有这个字符串

Sheriff Curtis Edward

我只需要在这个字符串中替换这个返回的第一个空格

SheriffCurtis Edward

即使给定的姓氏是双姓,这也将使以后的姓氏条目起作用...

我试过这个sql但是返回错误...

SELECT SUBSTRING('Sheriff Curtis Edward',
                 INSTR('Sheriff Curtis Edward', ' ') + 1,
                 CHAR_LENGTH('Sheriff Curtis Edward') - INSTR('Sheriff Curtis Edward', ' ')) new_string;
+---------------+
| new_string    |
+---------------+
| Curtis Edward |
+---------------+
1 row in set (0.10 sec)

2 个答案:

答案 0 :(得分:1)

您可以在此处将 REGEXP_REPLACE 与捕获组一起使用:

SELECT
    col,
    REGEXP_REPLACE(col, '^(\\S+) ', '$1') AS col_out
FROM yourTable;

Demo

答案 1 :(得分:1)

使用 subtring() 方法,您还可以提取空格前的子字符串,并将其与空格后的子字符串连接起来。

SELECT concat(substring(x.s,
                        1,
                        instr(x.s,
                              ' ')
                        - 1),
              substring(x.s,
                        instr(x.s,
                              ' ')
                        + 1,
                        char_length(x.s)
                        - instr(x.s,
                                ' ')))
       FROM (SELECT 'Sheriff Curtis Edward' s) x
相关问题