Ссылочный столбец в MySQL, где предложение по его индексу - PullRequest
1 голос
/ 24 марта 2012

Все таблицы в моей базе данных всегда имеют идентификатор (автоинкремент), в столбце 0, независимо от его имени, он всегда там.

Итак, в таблице teste у меня, вероятно, idTeste , в таблице cars у меня должно быть idCars , но формат не стандарт, я мог бы иметь таблицу пример со столбцом, который просто называется id .

Я пытаюсь создать общее обновление, например:

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

итак, не имеет значения имя столбца, я хочу сослаться на него по его идентификатору. Это возможно?

Я знаю, что могу сделать что-то вроде:

show columns from table

и выберите имя перед выполнением моего обновления, и, фактически, я сделал это, чтобы решить мою проблему, но мне любопытно, было ли это возможно.

1 Ответ

2 голосов
/ 24 марта 2012

То, что вы ищете, называется порядковым положением или просто «порядковым».

SQL не поддерживает использование ординалов в предложении WHERE. Поддержка порядковых номеров различается у разных поставщиков баз данных - наиболее распространенная поддержка содержится в предложении ORDER BY:

ORDER BY 2, 1

... опирается на столбец (столбцы), перечисленные в предложении SELECT. Некоторые вспомогательные ординалы в предложении GROUP BY.

Тем не менее, использование ординалов не является рекомендуемой практикой, поскольку оно зависит от порядка столбцов в предложении SELECT. Если этот порядок изменится без обновления ORDER BY / etc, вы не узнаете об этом до времени выполнения.

...