MySQL does not follow the ANSI SQL standard for quoting. MySQL’s default quoting behavior is that either single or double quotes can be used to quote a string (this gets me into trouble when I work with Oracle databases, as double quotes do not indicate a string!).
mysql> SELECT 'alive'; +-------+ | alive | +-------+ | alive | +-------+ 1 row in set (0.00 sec) mysql> SELECT "alive"; +-------+ | alive | +-------+ | alive | +-------+ 1 row in set (0.00 sec)
Bare words are dealt with in context; in this case, a bare word would be parsed as a column name:
mysql> SELECT alive; ERROR 1054 (42S22): Unknown column 'alive' in 'field list'
Backquotes are the way MySQL escapes table names. So, if you want
a reserved word, number or operator to be the name of an object
(ie, a table named “1″ or a column named “date”) you need to use
backquotes to avoid a syntax error….for example:
mysql> …[Read more]