选择Sql将列作为变量提及

时间:2014-12-02 11:08:44

标签: mysql

我做了以下操作,从表中排除字段(类型为'longblob)'。

  1. 将group_concat(COLUMN_NAME)SELECT到@column FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='document'AND DATA_TYPE NOT IN('longblob');
  2. 从文档中选择@column;
  3. 它仅返回@column值,而不是显示字段的值。

    例如:如果@column = "id, name",则仅返回"id, name"。而不是显示id&的值。分别名称。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT group_concat(COLUMN_NAME) into @column 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'document' AND DATA_TYPE NOT IN ('longblob');

set @stmt := concat('select ', @column , ' from document');

select @stmt;

PREPARE stmt FROM  @stmt;

EXECUTE stmt ;