2014-12-02 4 views
0

Я сделал следующее, чтобы исключить поля (тип которых «longblob») из таблицы.Выберите Sql, чтобы указать столбец как переменную

  1. ВЫБОР GROUP_CONCAT (COLUMN_NAME) в @Column ОТ INFORMATION_SCHEMA.COLUMNS ГДЕ table_name = 'документ' И DATA_TYPE НЕ В ('LONGBLOB');
  2. выберите @column from document;

Он возвращает значение только в виде столбца, а не выводит значение поля.

Ex:, если @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 ;