Может ли поле таблицы содержать дефис? - PullRequest
24 голосов
/ 02 июля 2010

У меня есть таблица в таблице MySQL с именем поля «product», и я хочу переименовать ее в «ds-product».

Используемая мной система типов CMS использует идентификатор полей формы в качествеимя поля таблицы, в которое нужно вставить.

Для большинства это работает нормально, но для определенного поля оно добавляет «ds-» к любому идентификатору, который я ему даю, поэтому я должен сопоставить имя поля таблицы.

Однако при попытке выполнить запрос я получаю сообщение об ошибке:

Неизвестный столбец 'sales.ds' в 'списке полей'

Можно ли каким-либо образом получитьполе называется ds-product?

Ответы [ 2 ]

35 голосов
/ 02 июля 2010

Да, вы можете использовать знаки пунктуации, пробелы, международные символы и зарезервированные слова SQL, если используете идентификаторы с разделителями :

SELECT * FROM `my-table`;

В MySQL используйте обратные галочки.В стандартном SQL используйте двойные кавычки.

Или, если вы используете MySQL, вы можете установить ANSI_QUOTES режим SQL :

SET SQL_MODE = ANSI_QUOTES;
SELECT * FROM "my-table";
4 голосов
/ 15 июля 2015

Попробуйте поставить скобки на последней части вашего разговора на столе. в вашем случае:

SELECT * FROM [TABLE-NAME];

просто поставьте квадратные скобки только на имя таблицы. не во всей базе он находится

SELECT * FROM some_database.anotherdatabase.[your-table];

P.S. работает и над столбцами.

Я использую Microsoft SQL Server Management.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...