2014-12-02 38 views
0

我做了以下操作以從表中排除字段(其類型爲'longblob')。選擇Sql作爲變量提及列

  1. SELECT GROUP_CONCAT(COLUMN_NAME)插入@column FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '文件' AND NOT DATA_TYPE IN( 'LONGBLOB');
  2. 從文檔中選擇@column;

它僅返回@column值,而不是顯示該字段的值。

例如: if @column = "id, name",僅返回"id, name"。而不是分別顯示id的名稱值&名稱。

回答

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 ;