1

我有一个 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

4

1 回答 1

2

这是使用INSTR,CONCATREPLACE的一种方法LENGTH

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

还有小提琴

祝你好运。

于 2013-02-11T15:51:14.717 回答