Ссылочный столбец в MySQL, где предложение по его индексу
Все таблицы в моей базе данных всегда имеют идентификатор (автоинкремент), в столбце 0, независимо от его имени, он всегда там.
Итак, в таблице teste у меня, вероятно, есть idTeste, в таблицах машин у меня должны быть idCars, но формат не является стандартным, я мог бы иметь пример таблицы со столбцом, который просто называется id.
Я пытаюсь создать общее обновление, как:
update tablename set bla='ble' where column[0]='id';
поэтому не имеет значения имя столбца, я хочу ссылаться на него по его идентификатору. Это возможно?
Я знаю, что могу сделать что-то вроде:
show columns from table
и выберите имя, прежде чем выполнять обновление, и, фактически, я сделал это, чтобы решить мою проблему, но мне любопытно, возможно ли это.
1 ответ
То, что вы ищете, называется порядковым положением или просто "порядковым".
SQL не поддерживает использование ординалов в предложении WHERE. Поддержка порядковых номеров различается у разных поставщиков баз данных - наиболее распространенная поддержка ORDER BY
пункт:
ORDER BY 2, 1
... который опирается на столбцы, перечисленные в SELECT
пункт. Некоторые вспомогательные ординалы в GROUP BY
пункт.
Тем не менее, использование ординалов не является рекомендуемой практикой, поскольку оно зависит от порядка столбцов в предложении SELECT. Если этот порядок изменится без обновления ORDER BY/etc, вы не узнаете об этом до времени выполнения.