MySQL:如何按编号选择列?

时间:2011-09-21 03:47:43

标签: mysql select syntax

我正在编写一个程序,我需要按编号SELECT列名,而不是按名称。

也就是说,我的表的属性是:

SSN, FirstName, LastName, MiddleName, Address, City, State, Zip

我怎样才能从第0列(SSN),第1列(FirstName),2(姓氏),第6列(状态)中选择数据

有没有办法在不钻研information schema的情况下做到这一点?

3 个答案:

答案 0 :(得分:4)

你应该重新考虑你的设计。一个表可以改变,它可以进化,列顺序非常易变。您不应该对列号进行硬编码。


附录

通过“evolve”和“fickle”,我并不是说数据库引擎可以移动它们。这几乎是修复。不,我的意思是未来需求会发生变化,表格设计可以更新。如果列出实际的列名而不是列位置顺序,将来会更容易调整旧代码。考虑列位置就像行位置:不要指望基于输入顺序的结果中的特定顺序,而是 make 您的查询为您提供所需的顺序。

答案 1 :(得分:1)

好的,所以不要这样做,但是,如果你真的需要这样做,你可以在信息模式中使用COLUMNS.ORDINAL_POSITION。

答案 2 :(得分:-3)

SELECT `0`,`1`,`2`,`6` FROM `table` ORDER BY `ssn`