使用内联数据模拟MySQL记录

coa*_*sap 5 mysql sql

这可能听起来像一个奇怪的问题,但我很想知道它是否可能......

有没有办法使用内联数据模拟MySQL记录?例如,如果有可能,我希望它能像以下那样工作:

SELECT inlinedata.*
FROM (
  ('Emily' AS name, 26 AS age),
  ('Paul' AS name, 56 AS age)
) AS inlinedata
ORDER BY age
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 11

不幸的是MySQL不支持values这种事情的标准行构造函数,所以你需要为每一行使用"虚拟"选择并使用UNION ALL

SELECT *
FROM (
  select 'Emily' AS name, 26 AS age 
  union all 
  select 'Paul', 56
) AS inlinedata
ORDER BY age
Run Code Online (Sandbox Code Playgroud)

UNION ALL两个目的

  1. 它会保留您可能有意复制的任何重复项
  2. 它比普通的(微小)快一点UNION(因为它不检查重复)