2011-01-27 1 views
1

私は自分のアプリケーションで動いています。私は(_)の代わりに(-)を糊として使用してテーブルとフィールドの名前を付けました。私が-メソッドを愛して以来、私はそれを保つ方法を考え出していました。フィールドに( - )を使用しています

まず:次に

SELECT * FROM cool-table 

: だから私は、次のように私のSQLクエリのテーブルに固定

SELECT * FROM `cool-table` 

をそして、それは働きました。しかし、今のフィールドは名前で私は本当にこの仕事をするために、ホット分からない:

SELECT * FROM `cool-table` WHERE cool-id = 1 

私は取得していますエラーがcool-id-に関連しています。 助けてください?私は

`cool-id` 

を置くことを試みたが、私のために動作しないようでした誓う

EDIT

。今それはあります。私のばかげた質問には申し訳ありません。

+6

あまりにも遠くに入る前に、できるだけテーブル/フィールド名を変更してください! –

+0

backticksはどこでもこれで動作しますが、私はそれを推奨しません。これは、元社員がたくさんのフィールドに名前をつけることにしたときのお尻の本当の痛みでした。 –

+0

@Charlieしないでください...「cool-id」は「cool minus id」を意味し、任意のトリック異なることを意味するためには、将来のプログラマーがあなたを嫌にするだけです。だから、なぜそれを 'cool_id'に変更しないのですか? –

答えて

5

SELECT * FROM `cool-table` WHERE `cool-id` = 1 

注意を行います(少なくとも私が、識別子の引用符と呼ばれる)単一ティックは、列名に追加しました。

PS。これは本当に悪い考えですが、すでに知っているでしょう。

+0

なぜそれは悪い考えですか? – Shoe

+5

@Charlie:あなたはこれらの名前を絶対に引用する必要があるので、データベースで作業する人は誰でもこれを行うためにあなたの誕生日を呪うでしょう。 –

+1

さて、あなたはすでにこのデータベースに対してSQLを書くのは難しいと思っています。来て、それをサポートしなければならない次のプログラマを想像してみてください。エンジンが実際に使用したくないキャラクターを使用しているだけでなく、意図を変えるものを使用しています - カラム名ですか?または数学的表現ですか? –

4

あなたが試してみました:

SELECT * FROM `cool-table` WHERE `cool-id` = 1 

を私はこれは動作するはずかなり確信しています。

1

あなたはそうのように、ちょうどあなたがテーブル名の場合と同じようuse the backtickことができるようになります。

SELECT * FROM `cool-table` WHERE `cool-id` = 1 
0

MySQLは識別子でハイフンが許可されていますが、標準SQLにはありません。

  1. は、アプリケーションの多くは、単にあなたのデータでは動作しないことを、あなたはかなり保証、
  2. ハイフンを使用することによって、あなたは
  3. 、あなたがする必要がある場合、別のプラットフォームに移動することはできませんあなたのアプリを使用する人はMySQLをインストールする必要があります。

しないでください。

+0

私はあなたにも感謝しません。 – Shoe

関連する問題