72 votos

¿Cómo crear una columna virtual usando MySQL SELECT?

Si selecciono a AS byb no es una columna en la tabla, ¿la consulta crearía la columna "virtual"?

de hecho, necesito incorporar alguna columna virtual en la consulta y procesar cierta información en la consulta para poder usarla con cada elemento más adelante.

94voto

Gabriel Sosa Puntos 4801

Algo como:

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

Esto le permite realizar operaciones y mostrarlo como columnas.

EDITAR:

también puede usar combinaciones y mostrar operaciones como columnas:

 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

68voto

ninsky Puntos 469

Pruebe este si desea crear una columna virtual "edad" dentro de una declaración de selección:

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

14voto

rb vishnu Puntos 908

Puede agregar columnas virtuales como

 SELECT '1' as temp

Pero si intenta poner la condición where a la columna generada adicionalmente, no funcionará y mostrará un mensaje de error ya que la columna no existe.

Podemos resolver este problema devolviendo el resultado de sql como una tabla, es decir,

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

1voto

jazcap53 Puntos 327

Podrías usar una declaración CASE, como

 SELECT name
       ,address
       ,CASE WHEN a < b THEN '1' 
             ELSE '2' END AS one_or_two
FROM ...

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X