这可能听起来像一个奇怪的问题,但我很想知道它是否可能......
有没有办法使用内联数据模拟MySQL记录?例如,如果有可能,我希望它能像以下那样工作:
SELECT inlinedata.*
FROM (
('Emily' AS name, 26 AS age),
('Paul' AS name, 56 AS age)
) AS inlinedata
ORDER BY age
答案 0 :(得分:11)
不幸的是,MySQL不支持标准的values
行构造函数,所以你需要使用" dummy"选择每一行并使用UNION ALL
SELECT *
FROM (
select 'Emily' AS name, 26 AS age
union all
select 'Paul', 56
) AS inlinedata
ORDER BY age
UNION ALL
有两个目的
UNION
快一点(因为它没有检查重复)答案 1 :(得分:0)
不,不是没有让它变得复杂,但你可以创建一个临时表并进行查询。当前客户端会话终止时,将删除临时表。
您可以查询它们并将数据插入其中,就像使用其他表一样。创建它们时,必须使用TEMPORARY关键字,如下所示:
CREATE TEMPORARY TABLE ...
这样,您还可以根据需要重复使用多个查询的数据,不存储任何数据,并且您查询的所有记录都具有正确的结构(而您在示例中提供的语法会在拼写列时产生问题名字错了)......