我们假设我们在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"
...
即。取决于mime_type
列的内容(对于图像文件),在表格行中实际添加不存在且具有相同数据,但稍微更改file_name
的值。
有没有办法使用SQL做到这一点?
答案 0 :(得分:2)
您可以使用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';