Выбрать из значений в mysql

Каким будет способ MySQL для выбора значений?

select c from (values (1), (2), (3)) as t(c);

Идея состоит в том, чтобы иметь возможность сделать что-то вроде этого:

select * from table, (values (1), (2), (3)) as temp(c) where ...;

Для справки, вот документ Postgres: http://www.postgresql.org/docs/9.1/static/sql-values.html

Ответ 1

Из предоставленной вами ссылки:

VALUES (1, 'one'), (2, 'two'), (3, 'three'),
Это вернет таблицу из двух столбцов и трех строк. Это эффективно эквивалентно:
SELECT 1 AS column1, 'one' AS column2
СОЮЗ ВСЕ
SELECT 2, 'two'
СОЮЗ ВСЕ
SELECT 3, 'three';

Итак, вам нужно

select * from 
table1,
(
   SELECT 1 AS val
   UNION ALL
   SELECT 2
   UNION ALL 
   SELECT 3 
)b

Ответ 2

Это еще один способ обойти отсутствие поддержки WITH в MySQL:

create temporary table tmp (c int);

insert into tmp (c)
values (1), (2), (3);

select * from tmp;