1

在这样的声明中;

$sql = "SELECT distinct `term`,count(*) as count 
FROM {$temp_table_name} 
group by `term` order by count DESC";  

在字段名称“术语”周围使用反勾号字符 (`) 对我有什么好处?是否出于性能原因使用反引号?还是为了某种 SQL 注入保护?

注意:在我提交问题后,我意识到反引号字符没有显示在字段名称“术语”周围 - 就在 stackoverflow 上。我不知道如何让它出现在问题正文中。

4

4 回答 4

6

如果term是mysql关键字,需要用`引用,否则不需要。

Ps:distinct在你的情况下不是必需的,因为你按它分组。

于 2012-06-17T05:11:28.237 回答
3

反引号是“官方”标识符引号字符。

http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

它允许标识符中包含更广泛的字符数组,如链接文档中所述。

于 2012-06-17T05:14:00.840 回答
2

反引号只允许在字段名称中使用空格或其他替代字符。

我认为这里已经很好地解释

于 2012-06-17T05:11:26.437 回答
1

当我们使用关键字作为表名时,MySQL 中的字段名使用反引号,或在启用 ANSI_QUOTES 时使用双引号。否则没有必要。与SQL injection protection

于 2012-06-17T05:14:57.230 回答