0

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

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

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

我如何仅从 0 (SSN)、1 (FirstName)、2(LastName)、6 (State) 列中选择数据

有没有办法在不深入研究的情况下做到这一点information schema

4

3 回答 3

4

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


附录

我所说的“进化”和“变化无常”并不是说数据库引擎可以移动它们。这几乎是修复。不,我的意思是未来需求可能会发生变化,并且桌子设计可以更新。如果您列出实际的列名而不是列位置顺序,将来修改旧代码会更容易。将列位置视为行位置:不要期望基于输入顺序的结果中的特定顺序,而是您的查询为您提供所需的顺序。

于 2011-09-21T03:54:33.810 回答
1

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

于 2011-09-21T03:55:45.480 回答
-4
SELECT `0`,`1`,`2`,`6` FROM `table` ORDER BY `ssn`
于 2011-09-21T03:50:24.347 回答