我的数据库中的所有表总是有一个id(autoincrement),在0列,不管它的名称是什么,它总是在那里。
所以,在table teste中我可能有idTeste,在table cars中我应该有idCars,但是格式不是标准的,我可以有一个表示例,其中有一个列简单地称为id。
我正在尝试创建一个通用更新,如:

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

所以,不管列的名称是什么,我想用它的id来引用它。这可能吗?
我知道我可以这样做:
show columns from table

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

最佳答案

你所追求的是所谓的序数位置,或者简单地说是“序数”。
SQL不支持在WHERE子句中使用序号。不同数据库供应商对序号的支持不同--最常见的支持是在ORDER BY子句中:

ORDER BY 2, 1

…依赖于SELECT子句中列出的列。有些支持GROUP BY子句中的序数。
也就是说,建议不要使用序数,因为它取决于SELECT子句中列的顺序。如果在没有更新order BY/etc的情况下更改了订单,那么在运行时才能知道。

10-05 19:28