MySQL前缀SET字段值与自定义字符串

时间:2013-02-11 15:39:47

标签: mysql string

我有一个MySQL {5}数据库表字段media,如set('audio','video','photo') 我需要做的是,在单个SELECT语句中,如果存在任何值,则在其前面添加一些自定义字符串和空格的值。例如:

audio,video变为mediaaudio mediavideo

photo变为mediaphoto

数据的细节不需要为相应的值创建外部关系表,因此set足以用于当前任务。我需要在它们前面添加前缀,以便稍后在搜索结果中对它们进行唯一标识。

真实的例子:

id media

1 audio,video

2 audio

3 video

4 photo,video

5

预期结果:

id media

1 mediaaudio mediavideo

2 mediaaudio

3 mediavideo

4 mediaphoto mediavideo

5

1 个答案:

答案 0 :(得分:2)

以下是使用INSTRCONCATREPLACELENGTH执行此操作的一种方法:

SELECT ID, 
  CASE WHEN INSTR(YourField, ',') > 0
    THEN CONCAT('media', REPLACE(YourField, ',', ' media'))
    WHEN LENGTH(YourField) > 0
    THEN CONCAT('media', YourField) 
    ELSE ''
   END media
FROM YourTable

Fiddle

祝你好运。