Можно ли использовать число для имени столбца таблицы MySQL?

у меня есть таблица с именами столбцов, такими как 25, 50, 100 и т. д..

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

UPDATE table SET '25'='100' WHERE id = '1'

Я пробовал цитировать и backticking каждый путь, но безуспешно.

ошибка всегда находится по строкам:

у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с " 25 ' =100, где id=1 ' в строке 1

Если я изменю имя столбца на

5 ответов


С документы:

идентификаторы могут начинаться с цифры, но если кавычки не могут состоять только из цифр.

что означает, что вы должны процитировать его с задними тиками, такими как`25':

UPDATE table SET `25`='100' WHERE id='1'

Как говорили другие, вы можете поставить галочку имена таблиц, столбцов и т. д. Просто убедитесь, что вы не тикаете значения в противном случае он будет интерпретировать их как имена столбцов. Таким образом, в вашем примере только 25 должны быть отмечены галочкой:

UPDATE table SET `25`=100 WHERE id=1

Если вам нужно, чтобы он был основан на номере по какой-либо причине, вы можете добавить к номеру простой префикс во всех случаях (например, "col25", "col87" и т. д.).


, проверьте здесь: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

идентификаторы могут начинаться с цифры, но если кавычки не могут состоять исключительно цифр.

Так что да, вы можете это сделать-вам нужно использовать backtics вокруг имени.


имена в MySQL can старт С цифры, но не может быть полностью цифры - их нельзя спутать с целым числом. Так что нет.

и если вы начинаете свой идентификатор с цифры, вы должны быть уверены, что вы придерживаетесь MySQL, потому что многие (большинство?) для других ядер баз данных требуется Альфа-символ в начале имен столбцов.

(Как указано в комментариях, полностью целое имя столбца is разрешается, если вы последовательно используйте символ backtick - если вы пробовали backticks и все еще получили синтаксическую ошибку, опубликуйте точный синтаксис backtick, который вы использовали).

кроме того, конечно, вы собираетесь создать некоторые трудные для чтения SQL, если вы выберете целочисленные столбцы!