Я хочу создать временную таблицу в одну строку, используя 3 столбца + содержимое существующей таблицы с именем affiliateproduct
и одновременно добавить 2 столбца title
и content
во временную таблицу. Оба должны быть типа VARCHAR, однако я не могу определить эти 2 столбца явно в одном запросе. В качестве обходного пути я сделал следующее:
CREATE TEMPORARY TABLE affiliate_product_results ENGINE = MEMORY SELECT ap.id,
ap.affiliateImageUrl, ap.rank, "" AS title, "" AS content FROM affiliateproduct ap;
В результате получается таблица, которая включает 3 столбца из affiliateproduct с соответствующими типами, но заголовок и содержимое оба получают назначенный тип char(0)
. Это не тот тип, который я хочу. (Вместо этого должно быть varchar(255)
). Есть ли способ заставить это работать с правильным назначением типа? (Я знаю, что, возможно, я мог бы присвоить значение " "
или что-то еще, и тогда он стал бы varchar (n пробелов), но это довольно глупо.
Есть способ или я вынужден сделать дополнительный столбец вставить запрос после создания временной таблицы.
Спасибо.
РЕДАКТИРОВАТЬ: Я нашел способ сделать это, но он хакерский. Он выглядит так:
CREATE TEMPORARY TABLE affiliate_product_results ENGINE = MEMORY SELECT ap.id,
ap.affiliateImageUrl, ap.rank, ap.affiliateImageUrl AS title, ap.affiliateImageUrl AS content FROM affiliateproduct ap;
Теперь заголовок и контент получают тот же тип столбца, что и affiliateimageUrl (varchar255)