如何使用MySQL SELECT创build虚拟列?

如果我做了一个AS b和b不是列中的列,将查询创build“虚拟”列?

实际上,我需要将一些虚拟列合并到查询中,并将一些信息处理到查询中,以便稍后在每个项目中使用它。

就像是

SELECT id, email, IF(actived = 1, 'enabled', 'disabled') AS account_status FROM users 

这允许您进行操作并将其显示为列。

编辑:

你也可以使用连接和显示operaitons作为列:

  SELECT u.id, e.email, IF(c.id IS NULL, 'no selected', c.name) as country FROM users u LEFT JOIN countries c ON u.country_id = c.id 

如果你想在select语句中创build一个虚拟列“age”,试试这个:

 select brand, name, "10" as age from cars... 

您可以添加虚拟列

 SELECT '1' as temp 

但是,如果您试图将附加生成列的条件放在哪里,则不会工作,并且会显示错误消息,因为该列不存在。

我们可以通过返回sql结果作为table.ie来解决这个问题,

 SELECT tb.* from (SELECT 1 as temp) as tb WHERE tb.temp = 1 

SELECT只从数据库中检索数据,它不会改变表本身。

如果你写

 SELECT a AS b FROM x 

“b”只是查询中的别名。 它不会创build额外的列。 您在示例中的结果将只包含一个名为“b”的列。 但是表中的列将保持“a”。 “b”只是另一个名字。

我不太明白你的意思,所以我可以在以后的每个项目中使用它。 你的意思是稍后在select语句或更高版本的应用程序中。 也许你可以提供一些示例代码。

你的语法会为a创build一个别名,但它不会超出语句的结果范围。 这听起来像你可能想创build一个视图