Вопрос по php, mysql – Действительно ли нужны кавычки вокруг таблиц и столбцов в запросе MySQL?

10

У меня есть короткий вопрос о запросе MySQL.

Что правильно?

SELECT * FROM Persons WHERE Year='1965'

Или же

SELECT * FROM `Persons` WHERE `Year` = '1965'

Это личный выбор или это то, что действительно не так?

Спасибо за все ответы и за редактирование. Поэтому скоро, если я смогу, я приму ответ (но какой ответ я должен принять?) JochemQuery
Я склонен не использовать обратные пометки, если я не назвал таблицу как-то вроде «таблица» (который в противном случае вызвал бы ошибку). Это делает запрос чище. Исключение составляют случаи, когда вы используете динамически генерируемые имена таблиц / столбцов. HappyTimeGopher

Ваш Ответ

4   ответа
2

Поэтому, если вы, например, используете псевдоним столбца с пробелом, какBirth year тогда вам нужно будет использовать одинарную кавычку, как это;

... WHERE `Birth year` = `1965`

Однако не рекомендуется использовать в псевдонимах более одного слова.

И, как сказал @Cody Caughlan, когда вы используетеMySQL зарезервированные слова.

6

tableили столбец с именемwhere, Это зарезервированные ключевые слова. Если вы использовали их в своих запросах без обратных кавычек, они создали бы недопустимый запрос (конечно, использование зарезервированных ключевых слов - плохая практика).

SELECT something FROM table WHERE where = 1;

против

SELECT something FROM `table` WHERE `where` = 1;
Error: User Rate Limit Exceeded JochemQuery
9

Кавычки необходимы, если ваши идентификаторы (столбцы, имена таблиц, операторы и т. Д.) Содержат зарезервированные слова MySQL.

Смотрите здесь полный список зарезервированных слов:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

7

но второй ВСЕГДА будет принят, даже если вы используете ключевые слова или функции, такие какwhile а такжеNOW() это обычно рассматривается как операторы.

Похожие вопросы