Home » Mysql » How to create virtual column using MySQL SELECT?

How to create virtual column using MySQL SELECT?

Posted by: admin November 1, 2017 Leave a comment

Questions:

If I do SELECT a AS b and b is not a column in the table, would query create the “virtual” column?

in fact, I need to incorporate some virtual column into the query and process some information into the query so I can use it with each item later on.

Answers:

something like

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

this allow you to make operations and show it as columns.

EDIT:

you can also use joins and show operaitons as columns:

    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

Questions:
Answers:

Try this one if you want to create a virtual column “age” within a select statement:

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

Questions:
Answers:

You can add virtual columns as

SELECT '1' as temp

But if you tries to put where condition to additionally generated column, it wont work and will show an error message as the column doesn’t exist.

We can solve this issue by returning sql result as a table.ie,

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

Questions:
Answers:

SELECT only retrieves data from the database, it does not change the table itself.

If you write

SELECT a AS b FROM x

“b” is just an alias name in the query. It does not create an extra column. Your result in the example would only contain one column named “b”. But the column in the table would stay “a”. “b” is just another name.

I don’t really understand what you mean with “so I can use it with each item later on”. Do you mean later in the select statement or later in your application. Perhaps you could provide some example code.

Questions:
Answers:

Your syntax would create an alias for a as b, but it wouldn’t have scope beyond the results of the statement. It sounds like you may want to create a VIEW