如果我理解正确,我认为你不能用一个查询来做到这一点.您可以尝试使用以下内容.添加了对代码的评论.
SET @schema = 'database_name_here'; -- Database name
SET @table = 'table1'; -- Table name
SET @startColumn = 'column_start';
SET @endColumn = 'column_end';
-- First get the position of both columns
SELECT ORDINAL_POSITION FROM information_schema.COLUMNS
WHERE table_schema=@schema AND table_name=@table AND
column_name=@startColumn INTO @StartPosition;
SELECT ORDINAL_POSITION FROM information_schema.COLUMNS
WHERE table_schema=@schema AND table_name=@table AND
column_name=@endColumn INTO @endPosition;
-- get the column names from the position
SELECT GROUP_CONCAT(column_name) from information_schema.COLUMNS
where table_schema=@schema AND table_name=@table
AND ORDINAL_POSITION > @StartPosition AND ORDINAL_POSITION < @endPosition
INTO @colname;
-- create a sql statement prepare and execute
SET @query = CONCAT('SELECT ',@colname,' FROM ', @table);
PREPARE stmt FROM @query;
EXECUTE stmt;