面试被问到一个问题,假如MySQL中的关键字在查询语句中作为列明或者表名出现,应该怎么处理。
例如
select desc from t;
首先创建一张表,包含两个字段,id和desc
插入了三条数据
![MySQL将DESC等关键字作为列名表名的处理方式 MySQL将DESC等关键字作为列名表名的处理方式](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzEvNy80LzQvNzEvMzdjOTczYmE3YmRiN2I0NWM0OTZjYjI2MTY3ODU1MzEuanBl.jpe?w=700&webp=1)
果然出错了,其实出现这个错误的原因是desc这个单词是MySQL数据库的关键字,所以sql语句执行到这里的时候觉得语句有问题。
处理方式,在列名字前后加上如下所示的符号
mysql> select `desc` from t; +--------------+ | desc | +--------------+ | 23234 | | klsadjflkasj | | 你好 | +--------------+ 3 rows in set (0.00 sec)