使用MySQL在表中拆分值

时间:2011-05-06 15:07:45

标签: mysql

我有下表:

table Exemple
ID    Value
1 "word1-1,word2-1, word3-1, word4-2"
2 "word1-2,word2-2, word3-2, word4-3"
3 "word1-3,word2-3, word3-3, word4-4"
4 "word1-4,word2-4, word3-4,"
5 "word1-5,word2-5, word3-5, word4-6"
6 "word1-6,word2-6, , word4-7"

我想用每个记录的值替换字符串中的最后一个单词(单词,如果存在,用逗号分隔)。 请注意,有时字符串中的一个单词丢失(第6行),有时全部丢失,有时只丢失最后一个(第4行)。如果遗漏了最后一个单词,我想得到一个NULL值 I.E. :

table Exemple
ID    Value
1 "word4-2"
2 "word4-3"
3 "word4-4"
4 NULL
5 "word4-6"
6 "word4-7"

我使用MySQL。

谢谢。

2 个答案:

答案 0 :(得分:4)

UPDATE  exemple
SET     value = NULLIF(TRIM(SUBSTRING_INDEX(value, ',', -1)), '')

答案 1 :(得分:0)

相当长的啰嗦,但应该给你你需要的东西:

SELECT IF(LENGTH(SUBSTR(value,LENGTH(value) -(INSTR(REVERSE(value),",")-2)))>0, SUBSTR(value,LENGTH(value) -(INSTR(REVERSE(value),",")-2)), NULL) FROM Example