1

このような声明では、

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

フィールド名「term」の前後にバックティック文字( `)を使用すると、何が得られますか?パフォーマンス上の理由でバックティックを使用していますか?それとも、ある種のSQLインジェクション保護のためですか?

注:質問を送信した後、バッククォート文字がフィールド名「term」の周りに表示されないことに気付きました-ここスタックオーバーフローで。質問の本文に表示する方法がわかりません。

4

4 に答える 4

6

termがmysqlキーワードの場合は、 `で引用する必要があります。それ以外の場合は、必要ありません。

追伸: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 に答える