Как условно дуализировать некоторые строки в результате SELECT? - PullRequest
0 голосов
/ 25 апреля 2018

Допустим, у нас есть таблица в базе данных 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?

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете использовать 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';

EDIT:

На основании комментария:

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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...