如何有条件地对select结果中的某些行进行二元化?

plicqrtu  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(310)

假设我们在mysql数据库中有一个表,它有两个文本列 mime_type 以及 file_name . 我可以这么做 SELECT 此表中的数据如下所示:

id  mime_type           file_name
001 application/pdf     file_one.pdf
002 image/png           screenshot.png
002 image/png           thumb_screenshot.png      # <- This row is "virtual"
...

i、 e.取决于 mime_type 列(对于图像文件)在表行中添加一个实际不存在的具有相同数据的行,但具有略微更改的 file_name 的值。
有什么方法可以使用sql来实现这一点吗?

w8f9ii69

w8f9ii691#

你可以用 union all :

select id, mime_type, file_name
from t
union all
select id, mime_type, 'thumb_screenshot.png'
from t
where mime_type = 'image/png';

编辑:
根据评论:

select id, mime_type, file_name
from t
union all
select id, mime_type, concat('thumb_', file_name)
from t
where mime_type = 'image/png';

相关问题