我有一个数据库,其中一列是一个人的工作信息,形式为:“雇主名称/职位名称”,例如“哈佛大学/教授”我想将其分为两栏,一栏是雇主专栏和一个标题栏。
有没有一种快速的方法可以在MySQL中执行此操作,或者我是否需要编写脚本来执行此操作。
答案 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)的想法