web-dev-qa-db-ja.com

MySQLテーブルカラムに名前を付けるために番号を使用できますか?

25、50、100などの列名を持つテーブルがあります。

テーブルを更新しようとすると、どのようにしてもエラーが発生します

UPDATE table SET '25'='100' WHERE id = '1'

私はあらゆる方法で引用と逆引用を試みましたが、成功しませんでした。

エラーは常に次の行に沿っています。

SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、1行目の '' 25 '= 100 WHERE id = 1'付近で使用する正しい構文を確認してください。

列名をtwentyfiveに変更すると、問題は発生しませんが、それは望みのものではありません。列名として数値を使用することはできますか?

20
Daniel Hunter

the docs から:

識別子は数字で始まる場合がありますが、引用符で囲まれていない限り、数字だけで構成されているとは限りません。

つまり、 `25`のようなバックティックで引用する必要があります。

UPDATE table SET `25`='100' WHERE id='1'
43
Matthew

他の人が言ったように、テーブル、列などのnamesをバックティックできます。valuesをバックティックしないようにしてください。そうしないと解釈されますそれらを列名として。したがって、あなたの例では25だけをチェックする必要があります:

UPDATE table SET `25`=100 WHERE id=1
4
Bryan Moodie

ここを確認してください: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

識別子は数字で始まる場合がありますが、引用符で囲まれていない限り、数字だけで構成されているとは限りません。

だから、はい、あなたはそれを行うことができます-あなたは名前の周りにbackticsを使う必要があります.

1
gview

なんらかの理由で数値に基づく必要がある場合は、単純なプレフィックスをすべての場合に数値に追加できます(「col25」、「col87」など)。

0
Jon Newmuis