我有下表:
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。
谢谢。
答案 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