【问题标题】:How to change the structure of a name field in mysql如何更改mysql中名称字段的结构
【发布时间】:2010-06-25 07:52:42
【问题描述】:

我有以下问题。

我的表,比如 tab1,有 name 列,如下“LastName, FirstName”。我想让该列变为“FirstName LastName”。

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

任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 您想重组您的表格,还是改变它的输出方式?你确定要这样做吗?
  • 您肯定必须更改表结构,而不是字段。它必须是 2 个单独的字段

标签: mysql string names flip


【解决方案1】:
  • 最好将名称列拆分为两个字段,FirstNameLastName,这样您就可以按照您想要的任何方式设置它们的格式,并且仍然可以按顺序排序姓氏。
  • 使用substringsubstring_index 查找逗号并对其进行拆分。请参阅manual

【讨论】:

    【解决方案2】:

    用你的真实值替换@NAME:

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

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

    【讨论】:

      【解决方案3】:

      不是您的问题的答案,但在任何情况下我都不会这样做。您将失去任何可靠地区分姓氏和名字的机会。考虑以下名称:

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

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

      【讨论】:

        【解决方案4】:
        UPDATE table SET name2=CONCAT (TRIM(SUBSTR(name, LOCATE(",", name) + 1)), ' ', TRIM(SUBSTR(name, 1, LOCATE(",", name) - 1)))
        

        【讨论】:

          猜你喜欢
          • 2010-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多