1

我的数据库中的所有表总是有一个 id(自动增量),在第 0 列,不管它的名字是什么,它总是在那里。

因此,在表teste中我可能有idTeste,在表中应该有idCars,但格式不是标准,我可以有一个表示,其中包含一个简单称为id的列。

我正在尝试创建一个通用更新,例如:

update tablename set bla='ble' where column[0]='id';

所以,不管列的名称,我希望通过它的 id 来引用它。那可能吗?

我知道我可以做类似的事情:

show columns from table

并在执行我的更新之前选择名字,事实上,我这样做是为了解决我的问题,但我很好奇它是否可能。

4

1 回答 1

3

您所追求的称为序数位置,或简称为“序数”。

SQL 不支持在 WHERE 子句中使用序数。对序数的支持因数据库供应商而异——最常见的支持在ORDER BY子句中:

ORDER BY 2, 1

...它依赖于SELECT子句中列出的列。GROUP BY子句中的一些支持序数。

也就是说,不推荐使用序数,因为它取决于 SELECT 子句中列的顺序。如果该订单在没有更新 ORDER BY/etc 的情况下发生更改,您将在运行时才知道。

于 2012-03-24T05:15:34.187 回答