前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
#### 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)命令行客户端忽略以`--`.