我正在编写一个程序,我需要按编号SELECT
列名,而不是按名称。
也就是说,我的表的属性是:
SSN, FirstName, LastName, MiddleName, Address, City, State, Zip
我怎样才能从第0列(SSN),第1列(FirstName),2(姓氏),第6列(状态)中选择数据
有没有办法在不钻研information schema
的情况下做到这一点?
答案 0 :(得分:4)
你应该重新考虑你的设计。一个表可以改变,它可以进化,列顺序非常易变。您不应该对列号进行硬编码。
附录
通过“evolve”和“fickle”,我并不是说数据库引擎可以移动它们。这几乎是修复。不,我的意思是未来需求会发生变化,表格设计可以更新。如果列出实际的列名而不是列位置顺序,将来会更容易调整旧代码。考虑列位置就像行位置:不要指望基于输入顺序的结果中的特定顺序,而是 make 您的查询为您提供所需的顺序。
答案 1 :(得分:1)
好的,所以不要这样做,但是,如果你真的需要这样做,你可以在信息模式中使用COLUMNS.ORDINAL_POSITION。
答案 2 :(得分:-3)
SELECT `0`,`1`,`2`,`6` FROM `table` ORDER BY `ssn`