ich folgendes dynamisch zu identifizieren alle Dezimalfeldern in Tabelle mit vielen Spalten laufen kann:MySQL min und max jeder Spalte
SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='tbl_name' AND DATA_TYPE = 'decimal'
Wie würde ich den minimalen und maximalen Wert für jedes dieser Felder ziehen? z.B. Endausgabe wie:
COLUMN_NAME DATA_TYPE MIN_VAL MAX_VAL
a decimal 4 22
b decimal 18 5593
c decimal 1 299
UPDATE:
Hier ist die letzte Syntax habe ich diese Funktion zu erhalten. Vielleicht habe ich einen einfacheren Weg verpasst, aber das funktioniert, also dank Gordon Linoff für die Antwort.
set @sql = concat('SELECT ', @cols, ' FROM ', @t);
SELECT @sql := GROUP_CONCAT(REPLACE(REPLACE(@sql, @cols,
CONCAT('"', COLUMN_NAME, '" as TheCol', ', ', '"', DATA_TYPE, '" as TheDType', ', ',
'MIN(', COLUMN_NAME, ') as TheMin, MAX(', COLUMN_NAME, ') as TheMax'
)
),
@t, 'tbl_name') SEPARATOR ' union all '
)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='tbl_name' AND DATA_TYPE = 'decimal';
prepare s from @sql;
execute s;
deallocate prepare s;
Wrte eine dynamische SQL-Anweisung auf der Grundlage den Tabellennamen und Spaltennamen die min max zu erhalten ... – xQbert