1. ホーム
  2. mysql

[解決済み] フィールド名をバックティックで囲む

2022-04-20 09:38:12

質問

ここでSQLの質問に対するいくつかの回答やコメントを読み、また、私の友人がそれを禁止するポリシーを持っている場所で働いていると聞いたので、MySQLでフィールド名の周りにバックティックを使うことに何か問題があるのだろうかと思っています。

ということです。

SELECT `id`, `name`, `anotherfield` ...
-- vs --
SELECT id, name, anotherfield ...

解決方法は?

バックティックを使用すると、代替文字を使用することができます。クエリ作成ではそれほど問題にはなりませんが、もしバックティックを使えばいいのだとすると、次のようなばかげたことができるようになると思われます。

SELECT `id`, `my name`, `another field` , `field,with,comma` 

もちろん、ひどい名前のテーブルが生成されます。

簡潔に言うだけなら問題ないでしょう。 このようなクエリを実行すると、次のようなことに気がつきます。

EXPLAIN EXTENDED Select foo,bar,baz 

戻ってくる生成された警告にはバックチックが付きます 完全修飾テーブル名。もし、クエリ生成機能やクエリの自動書き換え機能を使用しているのであれば、バックティックはコードを解析するものを混乱させないだろう。

しかし、バックティックの使用可否を義務付けるのではなく、名前の基準を設けるべきだと思います。そのほうが、より「現実的な」問題を解決できる。