我有一個DB,其中一列是以「僱主名稱/工作職位」形式表示的人的工作信息,例如「哈佛大學/教授」我想把它分成兩欄,一欄是僱主欄和一欄欄目。將mysql列拆分成兩列,並帶有分隔符
是否有快速的方法在MySQL中執行此操作,或者是否需要編寫腳本來執行此操作?
我有一個DB,其中一列是以「僱主名稱/工作職位」形式表示的人的工作信息,例如「哈佛大學/教授」我想把它分成兩欄,一欄是僱主欄和一欄欄目。將mysql列拆分成兩列,並帶有分隔符
是否有快速的方法在MySQL中執行此操作,或者是否需要編寫腳本來執行此操作?
下面的第一句回答你的問題,但也提供了一些你可以嘗試的基本方向。我個人會用PHP(或者你正在使用的任何服務器端)來完成它。
以下是從http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
MySQL的複製不包括功能分割一個分隔的字符串。 雖然分開的數據通常會在關係數據中分割成單獨的字段 ,但是在 初始數據加載/驗證期間或在文本 字段中保存此類數據的過程中,分割可能很有用。
可以使用以下公式提取 定界列表中的第N項,在本例中爲示例逗號 分隔列表中的第3項「ccccc」。
選擇替換(子串(SUBSTRING_INDEX( 'AAA,BBBB,CCCCC', ' '3), 長度(SUBSTRING_INDEX(' AAA,BBBB,CCCCC', '',3 - 1))+ 1 ),「」,‘’) ITEM3
上述公式不需要第一個項目到作爲 特例進行處理和正確地返回空字符串當項目計數 小於所要求的位置。
使用ALTER TABLE
語句添加此兩個欄 - >填充此列數據到新創建的列 - >刪除列老「僱主/職位的名稱」。
提示:您可以使用substring_index
finction的MySQL從舊列拆分出來的數據
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採取的想法)