我在用户表中有一个列'full_name'。看到我不想更改表结构,我正在寻找一种方法来替换每个名称中的第一个空格用两个字符(例如%$),以便我的代码知道在哪里拆分第一个和第二个名。
即使给定名称是双重名称,这也会使未来的名称条目有效。
谢谢!
答案 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, ' '))