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

Sku*_*uta 62 php mysql select

如果我执行SELECT a AS b并且b不是表中的列,是否会查询创建"虚拟"列?

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

Gab*_*osa 82

就像是

SELECT id, email, IF(active = 1, 'enabled', 'disabled') AS account_status FROM users
Run Code Online (Sandbox Code Playgroud)

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

编辑:

你也可以使用连接和显示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
Run Code Online (Sandbox Code Playgroud)


nin*_*sky 59

如果要在select语句中创建虚拟列"age",请尝试使用此列:

select brand, name, "10" as age from cars...
Run Code Online (Sandbox Code Playgroud)

  • 好招。很简单,但我以前从未尝试过。这正是我想知道的!:D (2认同)

rb *_*hnu 10

您可以添加虚拟列

SELECT '1' as temp
Run Code Online (Sandbox Code Playgroud)

但是,如果您尝试将where条件放在另外生成的列中,它将无法工作,并且将显示错误消息,因为该列不存在.

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

SELECT tb.* from (SELECT 1 as temp) as tb WHERE tb.temp = 1
Run Code Online (Sandbox Code Playgroud)