database - MySQL concatenating all columns -
why can not concatenate in mysql using * keyword?
select concat(*) table or
select group_concat(*) table is there other way access values in column without explicitly using columns name?
to concatenate columns in table, can't use * keyword, need explicitly list columns:
select concat(col1, col2, col3, ....) yourtable or might want use concat_ws skip null values:
select concat_ws(',', col1, col2, col3, ....) yourtable if don't want specify column names manually, use dinamic query. query return column names of table:
select `column_name` `information_schema`.`columns` `table_schema`=database() , `table_name`='yourtable'; and using group_concat can obtain list of column names:
group_concat(concat('`', column_name, '`')) quoted, in comma separated format:
`col1`,`col2`,`col3`,`col4`,... so have elements create our query dinamically:
select concat( 'select concat_ws(\'\',', group_concat(concat('`', column_name, '`') order column_name), ') all_columns yourtable;') `information_schema`.`columns` `table_schema`=database() , `table_name`='yourtable' @sql; this query set @sql string like:
select concat_ws('', col1, col2, col3, ....) all_columns yourtable and code execute it:
prepare stmt @sql; execute stmt; please see fiddle here.
Comments
Post a Comment