MySQL - 用字符替换第一个空格

时间:2016-06-27 13:42:25

标签: mysql

我在用户表中有一个列'full_name'。看到我不想更改表结构,我正在寻找一种方法来替换每个名称中的第一个空格用两个字符(例如%$),以便我的代码知道在哪里拆分第一个和第二个名。

即使给定名称是双重名称,这也会使未来的名称条目有效。

谢谢!

2 个答案:

答案 0 :(得分:0)

我会用PHP或你在堆栈中使用的任何语言编写转换脚本。您可以在部署使用指定格式的新代码之前立即执行它。

答案 1 :(得分:0)

正如其他人所建议的那样,最好的办法可能是重新设计你的架构,以便为名字和姓氏分别设置列。如果您无法执行此操作并且需要查询以提取名字和姓氏,请考虑以下查询。我不认为你需要添加一个特殊的除界仪。相反,您可以使用标准的MySQL字符串函数。

这是一个可用于提取名字的查询(直到第一个空格的所有内容):

SELECT SUBSTRING(full_name, 1, INSTR(full_name, ' ')-1)

以下是余数的查询:

SELECT SUBSTRING(full_name,
                 INSTR(full_name, ' ') + 1,
                 CHAR_LENGTH(full_name) - INSTR(full_name, ' '))