MySQL:如何按编号选择列?
我正在编写一个程序,我需要按编号而不是按名称选择列名 也就是说,我的表的属性是:MySQL:如何按编号选择列?,mysql,select,syntax,Mysql,Select,Syntax,我正在编写一个程序,我需要按编号而不是按名称选择列名 也就是说,我的表的属性是: SSN, FirstName, LastName, MiddleName, Address, City, State, Zip 如何仅从第0列(SSN)、第1列(名字)、第2列(姓氏)、第6列(州)中选择数据 有没有一种方法可以做到这一点而不必钻研信息模式 你应该重新考虑你的设计。一个表可以改变,它可以发展,列顺序是非常易变的。不应硬编码列编号 SELECT `0`,`1`,`2`,`6` FROM `table
SSN, FirstName, LastName, MiddleName, Address, City, State, Zip
如何仅从第0列(SSN)、第1列(名字)、第2列(姓氏)、第6列(州)中选择数据
有没有一种方法可以做到这一点而不必钻研信息模式 你应该重新考虑你的设计。一个表可以改变,它可以发展,列顺序是非常易变的。不应硬编码列编号
SELECT `0`,`1`,`2`,`6` FROM `table` ORDER BY `ssn`
附录
我所说的“进化”和“变化无常”,并不是说数据库引擎可以移动它们。这几乎是修修补补。不,我的意思是,未来需求可能会发生变化,表格设计也可能会更新。如果您列出实际的列名而不是列位置顺序,那么将来修改旧代码将更容易。与行位置一样考虑列位置:不要期望结果中基于输入顺序的特定顺序,而是让查询提供所需的顺序。好的,所以不要这样做,但是,如果确实需要这样做,可以在信息架构中使用COLUMNS.ORDINAL_position 为什么要按数字选择?这是一个非常糟糕的设计,如果它是任意的。或者这是作业?你能将它们存储在一个数组中并引用数组键吗?我的意思是,我可以跟踪另一个结构,如果我可以直接进行选择,那就更容易了。在工作中学习了别人的代码,我不想重新设计很多东西。啊。。我想可能是这样的。好了,该重构了!顺便说一句,如果您希望这样做是因为旧表为列名保留了字,这是一个常见的问题,您可以简单地将列名用引号括起来。例如,从SELECT中选择SELECT可能是合法的SQL,但我不确定。