
Originariamente inviata da
cablos
salve
...
devo però mostrare solo i campi il cui tipo di dato è tinyint(1) ma il cui valore è uguale ad "1"
...
questo non è che si capisca tanto;
....comunque , vedi se una cosa del genere può andare http://sqlfiddle.com/#!9/84936/6
codice:
CREATE TABLE atable (
campo1 TINYINT(1)
,campo2 TINYINT(1)
,campo3 INT
);
INSERT INTO atable VALUES (1, 0, 0);
INSERT INTO atable VALUES (0, 0, 0);
SELECT
CONCAT('SELECT ''', GROUP_CONCAT(c.COLUMN_NAME,CONCAT(''' as RESULT FROM atable where ', c.column_name , ' = 1 ') SEPARATOR ' UNION SELECT ''' ) )
into @query
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_NAME = 'atable'
AND c.COLUMN_TYPE='TINYINT(1)'
ORDER BY c.ORDINAL_POSITION;
-- vedo la query generata
SELECT @query;
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt ;