#### 1.7.2.4 '--' 作为评论的开始

[](<>)[](<>)

标准 SQL 使用 C 语法`/* 这是一条评论 */`用于注释，MySQL Server 也支持这种语法。MySQL 还支持此语法的扩展，使 MySQL 特定的 SQL 能够嵌入到注释中，如中所述[第 9.7 节，“评论”](comments.html).

标准 SQL 使用“`--`”作为开始评论序列。MySQL 服务器使用`#`作为开始评论字符。MySQL 服务器还支持`--`评论风格。那就是`--`start-comment 序列必须后跟一个空格（或一个控制字符，例如换行符）。需要该空间以防止自动生成的 SQL 查询出现问题，这些查询使用如下结构，我们在其中自动插入付款的值`支付`：

```
UPDATE account SET credit=credit-payment
```

考虑一下如果发生什么`支付`具有负值，例如`-1`：

```
UPDATE account SET credit=credit--1
```

`信用--1`是 SQL 中的有效表达式，但`--`被解释为注释的开始，部分表达式被丢弃。结果是一个与预期含义完全不同的语句：

```
UPDATE account SET credit=credit
```

该语句根本不会产生任何价值变化。这说明允许评论以`--`可能会产生严重的后果。

使用我们的实现需要一个空格`--`以便在 MySQL Server 中将其识别为 start-comment 序列。所以，`信用--1`使用安全。

另一个安全的功能是[**mysql**](mysql.html)命令行客户端忽略以`--`.
