【MySQL】MySQL关键字作为列名表名的处理方式

面试被问到一个问题,假如MySQL中的关键字在查询语句中作为列明或者表名出现,应该怎么处理。

例如

select desc from t;

一脸懵逼。尴尬。

于是乎,自己私下做了一个实验,发现了其中原因,特此分享。

创建t表,包含两个字段,id和desc

图示

插入了三条数据

【MySQL】MySQL关键字作为列名表名的处理方式_第1张图片

mysql> use test;
Database changed
mysql> select desc from t;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc from t' at line 1

果然出错了,其实出现这个错误的原因是desc这个单词是MySQL数据库的关键字,所以sql语句执行到这里的时候觉得语句有问题。

处理方式,在列名字前后加上如下所示的符号

【MySQL】MySQL关键字作为列名表名的处理方式_第2张图片

mysql> select `desc` from t;
+--------------+
| desc         |
+--------------+
| 23234        |
| klsadjflkasj |
| 你好         |
+--------------+
3 rows in set (0.00 sec)

MySQL中的关键字列表

你可能感兴趣的:(MySQL)