将mysql列拆分为带分隔符的两列

时间:2011-11-17 19:39:21

标签: mysql

我有一个数据库,其中一列是一个人的工作信息,形式为:“雇主名称/职位名称”,例如“哈佛大学/教授”我想将其分为两栏,一栏是雇主专栏和一个标题栏。

有没有一种快速的方法可以在MySQL中执行此操作,或者我是否需要编写脚本来执行此操作。

3 个答案:

答案 0 :(得分:0)

下面的第一句话回答了你的问题,但也提供了一些你可以尝试的基本方向。我个人会用PHP(或者你正在使用的服务器端)来做。

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

复制以下内容
  

MySQL不包含拆分分隔字符串的函数。   虽然分离的数据通常会分成单独的字段   在关系数据中,分割这样的数据在期间可能是有用的   初始数据加载/验证或此类数据保存在文本中的位置   字段。

     

以下公式可用于提取a中的第N个项目   分隔列表,在本例中是示例逗号中的第3项“ccccc”   分开的清单。

     

select replace(substring(substring_index('aaa,bbbb,ccccc',',',3),   length(substring_index('aaa,bbbb,ccccc',',',3 - 1))+ 1),',','')   ITEM3

     

以上公式不需要将第一项作为a处理   特殊情况,并在项目计数时正确返回空字符串   低于要求的位置。

答案 1 :(得分:0)

使用ALTER TABLE语句添加此两列 - >将此列中的数据填充到新创建的列中 - >删除旧的“雇主/职称名称”栏目。

提示:您可以使用substring_index mysql的结果来拆分旧列中的数据

答案 2 :(得分:0)

select
    replace(substring(substring_index('Harvard University/Professor', '/', 2),
            length(substring_index('Harvard University/Professor', '/', 2 - 1)) + 1),
            '/',
   '') 

(来自http://dev.mysql.com/doc/refman/5.0/en/string-functions.html)的想法