我有一个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
答案 0 :(得分:2)
以下是使用INSTR
,CONCAT
,REPLACE
和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
祝你好运。