У меня есть короткий вопрос о запросе mysql.
Что правильно?
SELECT * FROM Persons WHERE Year='1965'
Или
SELECT * FROM `Persons` WHERE `Year` = '1965'
Это личный выбор или это что-то действительно не так?
Что делать, если у вас есть таблица с именем table
или столбец с именем where
. Это зарезервированные ключевые слова. Если вы использовали те, что были в ваших запросах без обратных ссылок, они создавали бы недопустимый запрос (конечно, использование зарезервированных ключевых слов – плохая практика).
SELECT something FROM table WHERE where = 1;
против
SELECT something FROM `table` WHERE `where` = 1;
Котировки необходимы, если ваши идентификаторы (столбцы, имена таблиц, операторы и т. Д.) Содержат зарезервированные слова MySQL.
См. Здесь полный список зарезервированных слов: http://dev.mysql.com/doc/refman/5.5/ru/reserved-words.html
Оба правильные, но второй будет приниматься ВСЕГДА, даже если вы используете ключевые слова или функции, такие как while
и NOW()
, которые обычно рассматриваются как операторы.
Оба метода верны, одинарная кавычка указывает начало и конец строки.
Поэтому, если вы, например, используете псевдоним столбца с пространством типа « Birth year
тогда вам нужно будет использовать одинарный кавычек следующим образом;
... WHERE `Birth year` = `1965`
Однако не рекомендуется использовать более одного слова в псевдонимах.
И как @Cody Caughlan сказал также, когда вы используете зарезервированные слова MySQL .