在这样的声明中;
$sql = "SELECT distinct `term`,count(*) as count
FROM {$temp_table_name}
group by `term` order by count DESC";
在字段名称'term'周围使用后退字符(`)给我买什么? 出于性能原因,是否使用了后退?或者它是否适用于某种SQL注入保护?
注意:在我提交问题后,我意识到反引号字符没有显示在字段名称'term'周围 - 就在stackoverflow上。 我不知道如何让它出现在问题体中。
答案 0 :(得分:6)
如果term
是mysql关键字,则需要通过`引用它,否则,没有必要。
Ps:distinct
在您的情况下不是必需的,因为您按照它进行分组。
答案 1 :(得分:3)
答案 2 :(得分:2)
反引号只允许在字段名称中使用空格或其他替代字符。
我认为已经很好地解释了here。
答案 3 :(得分:1)
当我们使用关键字作为表名时,MySQL中的字段名称使用反引号,或者在启用ANSI_QUOTES时使用双引号。其他方面没有必要。它不会转换为SQL injection protection