25、50、100などの列名を持つテーブルがあります。
テーブルを更新しようとすると、どのようにしてもエラーが発生します
UPDATE table SET '25'='100' WHERE id = '1'
私はあらゆる方法で引用と逆引用を試みましたが、成功しませんでした。
エラーは常に次の行に沿っています。
SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、1行目の '' 25 '= 100 WHERE id = 1'付近で使用する正しい構文を確認してください。
列名をtwentyfive
に変更すると、問題は発生しませんが、それは望みのものではありません。列名として数値を使用することはできますか?
the docs から:
識別子は数字で始まる場合がありますが、引用符で囲まれていない限り、数字だけで構成されているとは限りません。
つまり、 `25`のようなバックティックで引用する必要があります。
UPDATE table SET `25`='100' WHERE id='1'
他の人が言ったように、テーブル、列などのnamesをバックティックできます。valuesをバックティックしないようにしてください。そうしないと解釈されますそれらを列名として。したがって、あなたの例では25だけをチェックする必要があります:
UPDATE table SET `25`=100 WHERE id=1
ここを確認してください: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
識別子は数字で始まる場合がありますが、引用符で囲まれていない限り、数字だけで構成されているとは限りません。
だから、はい、あなたはそれを行うことができます-あなたは名前の周りにbackticsを使う必要があります.
なんらかの理由で数値に基づく必要がある場合は、単純なプレフィックスをすべての場合に数値に追加できます(「col25」、「col87」など)。