¿Seleccionar todas las columnas excepto una en MySQL?

Resuelto Tom Grochowicz asked hace 16 años • 34 respuestas

Estoy intentando utilizar una declaración de selección para obtener todas las columnas de una determinada tabla MySQL excepto una. ¿Existe una forma sencilla de hacer esto?

EDITAR: Hay 53 columnas en esta tabla (NO ES MI DISEÑO)

Tom Grochowicz avatar Aug 13 '08 01:08 Tom Grochowicz
Aceptado

En realidad hay una manera, necesitas tener permisos, por supuesto, para hacer esto...

SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), '<columns_to_omit>,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table>' AND TABLE_SCHEMA = '<database>'), ' FROM <table>');

PREPARE stmt1 FROM @sql;
EXECUTE stmt1;

Reemplazo<table>, <database> and <columns_to_omit>

Mahomedalid avatar Sep 29 '2009 23:09 Mahomedalid

(No intentes esto en una mesa grande, el resultado puede ser... ¡sorprendente!)

MESA TEMPORAL

DROP TABLE IF EXISTS temp_tb;
CREATE TEMPORARY TABLE ENGINE=MEMORY temp_tb SELECT * FROM orig_tb;
ALTER TABLE temp_tb DROP col_a, DROP col_f,DROP col_z;    #// MySQL
SELECT * FROM temp_tb;

La sintaxis DROP puede variar para las bases de datos @Denis Rozhnev

bortunac avatar Dec 16 '2010 13:12 bortunac