UPDATE文がどうしても通らない!
SQL文を見返せど見返せど間違いなんてない。
そんなときはまず、自分のSQL文への理解がそもそも間違っていることを疑ってみましょう。
今回ご紹介するのはその一例で「,(コンマ)」の付け方です。
「,(コンマ)」に注意
みなさんはこのSQL文の誤りがわかりますでしょうか。
(エラーになるSQL文:例)
UPDATE テーブル名
SET カラム1 = 値1,カラム2 = 値2,カラム3 = 値3,カラム4 = 値4,
WHERE 条件;
正解は、SET句の最後「カラム4 = 値4,」の末尾についている「,(コンマ)」です。
UPDATEのSET句では、末尾に「,(コンマ)」を付けてはいけません。
勢い余って付けてしまったり、後から項目を追加できるようにとコンマを付けておいたりするとSQLがエラーで通りません。
私は最初これを知らず、あとからコピペで項目を追加しやすいように末尾にもコンマを付けていました。(※)
もちろんUPDATEはできず解決に非常に時間をかけることに・・・。
(※)PHPでは関数の引数末尾に「,(コンマ)」を付けておいても問題ないためそのノリで。ただし、PHPのVerによっては末尾の「,(コンマ)」が許容されない場合もあります。
SQLでUPDATEができないときの注意点「,(コンマ)」:まとめ
例のように簡単なSQL文なら気付きやすいかもしれませんが、より長文で複雑になってくるとそもそも「,(コンマ)」が付いていることに気付きづらいです。
また、最初は末尾に「,(コンマ)」などなかったのに項目を切り取ったときに「,(コンマ)」が残ってしまい「UPDATEカラムを減らしただけなのになぜできない!」となりがちですので気をつけましょう。
この記事で救われる方がいらっしゃれば幸いです。
ご覧いただきありがとうございました。