¿Seleccionar todas las columnas excepto una en MySQL?
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)
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>
(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