MySQL转义符应用

MySQL学习记录(1)

背景:今天在学习使用sql语句时,发现一个有趣的地方:

# 正常语句
SELECT * from mysql.general_log ORDER BY event_time DESC;

# 报错语句 1146 - Table 'dvwa.mysql.general_log' doesn't exist
SELECT * from `mysql.general_log` ORDER BY event_time DESC;

让我们看下符号`在mysql查询中的意义:

` 是 MySQL 的转义符,避免和 mysql 的本身的关键字冲突,只要你不在列名、表名中使用 mysql 的保留字或中文,就不需要转义。所有的数据库都有类似的设置,不过mysql用的是`而已。通常用来说明其中的内容是数据库名、表名、字段名,不是关键字。

在报错语句中,语句在执行过程中,将mysql.general_log视为一个整体的表名,在当前dvwa数据库中找不到这一表,所以报错

测试:在dvwa新建表mysql.general_log,再次执行,成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值