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