Я работаю над проектом, в котором другой разработчик создал таблицу с именами столбцов, например 'Business Name'
. Это пробел между двумя словами. Если я запускаю SELECT
оператор с «Business Name», он говорит, что нет столбца с именем «Business».
Как я могу решить эту проблему?
Ответы:
Как правило, первый шаг - не делать этого в первую очередь, но если это уже сделано, вам нужно прибегнуть к правильному цитированию имен столбцов:
SELECT `Business Name` FROM annoying_table
Обычно подобные вещи создаются людьми, которые использовали что-то вроде Microsoft Access и всегда используют графический интерфейс для выполнения своих задач.
источник
'
, двойные"
и обратные`
. В MySQL первые два эквивалентны и могут использоваться взаимозаменяемо. На других платформах это не всегда так, и Postgres, в частности, относится к ним иначе. Обратные кавычки используются только для экранирования имени базы данных или столбца.Если двойные кавычки не работают, попробуйте заключить строку в квадратные скобки.
Например:
SELECT "Business Name","Other Name" FROM your_Table
можно изменить как
SELECT [Business Name],[Other Name] FROM your_Table
источник
Вам нужно использовать обратную кавычку вместо одинарных кавычек:
Одиночная кавычка -
'Business Name'
- НеправильноОбратный апостроф -
`Business Name`
- правильныйисточник
Каждому свое, но правильный способ закодировать это - переименовать столбцы, вставив подчеркивание, чтобы не было пробелов. Это гарантирует отсутствие ошибок при кодировании. При печати имен столбцов для публичного показа вы можете выполнить поиск и заменить, чтобы заменить подчеркивание пробелом.
источник
Я попал сюда с проблемой MS Access.
Обратные кавычки хороши для MySQL, но они создают странные ошибки, такие как «Недопустимое имя запроса: Query1» в MS Access, только для MS Access используйте квадратные скобки:
Это должно выглядеть так
SELECT Customer.[Customer ID], Customer.[Full Name] ...
источник
Я думаю, что двойные кавычки тоже работают:
SELECT "Business Name","Other Name" FROM your_Table
Но я тестировал только на SQL Server, а не на mySQL, если кто-то работает с MS SQL Server.
источник