Выбрать из значений в 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;