0

我需要以相反的顺序表结构选择具有列的记录。例如,如果我的表结构是这样的

class   name        rank  
------  ----------  ------
A       Nija             2
D       cruz             3
B       Antony           4
C       silverster       5
A       febin            1   

表示我希望结果为

  rank  name        class 
------  ----------  ------
     2  Nija        A     
     3  cruz        D     
     4  Antony      B     
     5  silverster  C     
     1  febin       A     

您可以说选择排名、名称、类别等列。但我的表列会动态增加。如果我的表包含任意数量的列,我想要结果,但结果应该与表结构相反。在这里,我将只选择所有列。

4

2 回答 2

1

试试这个:

SET @myval=(select group_concat(COLUMN_NAME)from (
SELECT ORDINAL_POSITION, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Table1'
order by ORDINAL_POSITION desc) a);

SET @strsql=CONCAT('select ',@myval,' from Table1');

PREPARE stmt FROM @strsql; 
EXECUTE stmt;

SQL 小提琴演示

于 2012-11-26T13:07:41.770 回答
0

你为什么不简单地做

SELECT rank, name, class FROM table_name;
于 2012-11-26T13:01:20.587 回答