For at få tabelnavn og kolonnenavne kan du bruge:
SELECT CONCAT(`table_name`, '-', GROUP_CONCAT(`column_name` ORDER BY Ordinal_position SEPARATOR ':')) AS resultFROM information_schema.columns-- WHERE `table_name` =?GROUP BY `table_name`;
Output:
╔══════════════╗║ resultat ║╠═════════════════╗║ resultat ║╠═════════════════╗║ resultat -id:col2 ║║ tab2-id:col3 ║╚══════════════╝
For at få prøvepost for hver kolonne skal du bruge dynamic-sql:
SET @sql ='';SELECT @sql :=CONCAT(@sql, '(SELECT ''', `table_name`, ''' AS tab_name, ''', `column_name`, '' ' AS column_name, ', 'ordinal_position', ' AS ordinal_pos, ', 'column_name', ' AS sample ' 'FROM ', 'table_name' , ' LIMIT 1) UNION ALL ') FROM information_schema.columnsWHERE `table_name` LIKE 'tab_ ';SET @sql :=SUBSTRING(@sql, 1, LENGTH(@sql) - 11);SET @final_sql ='SELECT CONCAT(`tab_name`, ''-'', GROUP_CONCAT(CONCAT(`column_name`, ' ':'', sample ) ORDER BY ordinal_pos)) AS result FROM ( ) AS sub GROUP BY tab_name';SET @final_sql =REPLACE(@final_sql, '', @sql);forbered s fra @ final_sql;udfør s;afallokér forberede s;
Output:
╔═════════════════════════════════════════════════════════║═══════ ══════════════════╣║ tab0-id:1, col:a ║║ tab1-id:10, col2:2 ║║:2, col2:2 ║║ 2016-01-26 ║╚══════════════════════════kode