繁体   English   中英

如何在mysql中更改名称字段的结构

[英]How to change the structure of a name field in mysql

我有以下问题。

我的表称为tab1,其名称列如下“ LastName,FirstName”。 我要使其成为“ FirstName LastName”。

关于如何完成的任何想法? 请注意,这里没有逗号,但是我想一旦弄清楚如何实际翻转名字和姓氏,就可以轻松删除它。

任何帮助,将不胜感激。

谢谢。

  • 最好将name列分成两个字段, FirstNameLastName ,以便您可以按所需的任何方式设置它们的格式,并且仍按姓氏排序。
  • 使用substringsubstring_index查找逗号并对其进行分割。 请参阅手册

用您的真实值替换@NAME:

SELECT TRIM(SUBSTR(@NAME, LOCATE(",", @NAME) + 1)) AS prename, TRIM(SUBSTR(@NAME, 1, LOCATE(",", @NAME) - 1)) AS surename

这将提取prename和surename部分,现在您可以根据需要插入/修改数据。

不能回答您的问题,但是在任何情况下我都不会这样做。 您将没有机会可靠地分辨出姓氏和名字。 考虑以下名称:

Bridget St John
Boutros Boutros Ghali
Karl-Theodor Maria Nikolaus Freiherr von und zu Guttenberg

我建议保留单独的“姓氏”和“名字”列。 您可以在输出时随意连接它们。

UPDATE table SET name2=CONCAT (TRIM(SUBSTR(name, LOCATE(",", name) + 1)), ' ', TRIM(SUBSTR(name, 1, LOCATE(",", name) - 1)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM