1

MySQL に 1960 年、1961 年、1962 年などの列名を持つテーブルがあります。レコードは正常に挿入されています。クエリでテーブルを更新しようとすると

UPDATE table1 SET 1960=0.0 WHERE id = 'abc'

それは与えます:

You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near '1960=0.0 WHERE id='abc' at line 1 

数字としての列名が原因ですか、それとも何かが間違っていますか?

4

3 に答える 3

3

これを試して:

UPDATE table1 SET `1960`='0.0' WHERE id = 'abc'

...列名にバッククォートを追加し、値を一重引用符で囲みました(値には実際には必要ありませんが、私は常にそうしています)

于 2012-07-17T14:17:02.370 に答える
3

バッククォートで列名をエスケープする

UPDATE table1 SET `1960` = 0.0 WHERE id = 'abc'

カラム名がMySQLの予約キーワードまたは数値である場合は、これを行う必要があります。

于 2012-07-17T14:17:17.013 に答える
0

バッククォート文字を使用して、列名をエスケープする必要があります。次のマニュアルページはやや内容が濃いですが参考になります

試す...

UPDATE table1 SET `1960`=0.0 WHERE id = 'abc'
于 2012-07-17T14:20:36.560 に答える