Як вибрати назву стовпця з пробілом у MySQL [дублікат]


93

Я працюю над проектом, де інший розробник створив таблицю з іменами стовпців типу 'Business Name'. Це проміжок між двома словами. Якщо я запускаю SELECTзаяву з назвою "Business Name", в ній говориться, що немає стовпця з назвою "Business".

Як я можу вирішити цю проблему?


У мене недостатньо репутації, щоб коментувати належним чином, тому позначений на кінці: Рішення, розміщене вище в коментарях: `надокучливий_таблиця`.` Ім'я бізнесу` не працювало для мене в mySQL в операторі where. Видалення зворотних лапок в назві таблиці спрацювало: тобто annoying_table.
`Ім'я

Відповіді:


163

Як правило, перший крок - це не робити спочатку, але якщо це вже зроблено, то вам слід вдатися до правильного цитування назв стовпців:

SELECT `Business Name` FROM annoying_table

Зазвичай подібні речі створюються людьми, які використовували щось на зразок Microsoft Access і завжди використовують графічний інтерфейс, щоб зробити свою справу.


@tadman Якщо я скопіюю та вставлю ваш запит, це спрацьовує, але якщо я набираю одинарну лапку з клавіатури, це не працює. тобто ВИБЕРІТЬ «Назва компанії» З
ANY annoying_table

17
Це тому , що це не поодинокі лапки, а тик символи , які зазвичай можна знайти на клавіатурі зліва від цифр 1.
peterm

5
Існує три типи цитат, одинарна ', подвійна "та зворотна `. У MySQL перші два еквівалентні і можуть використовуватися як взаємозамінні. Це не завжди так на інших платформах, і, зокрема, Postgres ставиться до них по-різному. Зворотні позначки використовуються лише для екрану імені бази даних або стовпця.
tadman

дужки [] у мене не працювали. Не було помилок, але просто не відображалося. `з іншого боку працював чудово.
Джей

1
@Robert Тоді ви б написали це так: `надокучлива_таблиця`.` Назва бізнесу`.
Ерік Черпняк,

20

Якщо подвійні лапки не працюють, спробуйте включити рядок у квадратні дужки.

Наприклад, наприклад:

SELECT "Business Name","Other Name" FROM your_Table

можна змінити як

SELECT [Business Name],[Other Name] FROM your_Table


17

Вам потрібно використовувати зворотний бік замість одинарних лапок:

Одинарна котирування - 'Business Name'- Неправильно

Backtick - `Business Name`- Правильно


3

Для кожного своє, але правильний спосіб кодування - це перейменувати стовпці, вставляючи підкреслення, щоб не було прогалин. Це забезпечить нульові помилки при кодуванні. Під час друку назв стовпців для загального показу ви можете здійснити пошук і заміну, щоб замінити підкреслення пробілом.


0

Я потрапив сюди з проблемою MS Access.

Зворотні посилання хороші для MySQL, але вони створюють дивні помилки, наприклад, "Неправильне ім'я запиту: Query1" у MS Access, лише для MS Access, використовуйте квадратні дужки:

Це повинно виглядати так

SELECT Customer.[Customer ID], Customer.[Full Name] ...

-3

Я думаю, що подвійні лапки теж працюють:

SELECT "Business Name","Other Name" FROM your_Table

Але я тестував на SQL Server НЕ mySQL, якщо хтось працює з MS SQL Server.


5
Це завжди вибирає рядок "Назва компанії", а не вміст стовпця.
JonasB

@JonasB Будь ласка, ще раз перевірте, я використовував подвійні лапки, а не одинарні лапки .... Одні лапки приведуть до рядка, подвійні лапки не будуть.
Vin.X,

Питання стосувалося конкретно MySQL і на сервері MySQL зі стандартними налаштуваннями подвійні лапки та одинарні лапки рівноцінні. Дивіться цей відповідь для отримання додаткової інформації , чому це просто погана ідея використовувати подвійні лапки в MySQL: stackoverflow.com/a/14123649/4172652
JonasB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.