いつもお世話になっております。
MySQLにて以下の要件を見対したいと考えております。
1.既にレコードが存在したらUPDATE、無ければINSERT
2.UPDATEの際は、特定のカラムに対してif文を組みたい
1.については「INSERT INTO TBL(column,...) VALUES(value,.....) ON DUPLICATE KEY UPDATE column = ''」で解決できたのですが、2についてがうまく行きません。
MySQLでは、if文をかけると聞いたのでそれを利用しています。
if文をいれて更新したい内容は
・レコードを更新する際に、特定のカラムがnullなら現在日付を、
・nullでなければ何もしない(既に登録されている日付で更新という動作にしています。)
という感じです。
現状のテーブル、SQLは以下のようになっております。
before_TBL
id | username | date
01 | aaaaaaaa | 2015-06-01 00:34:21
02 | bbbbbbbb | null
というテーブルを以下のSQLを入れて、
lang
1INSERT INTO users(id, username, date) VALUES ('$id', '$username', '$date) ON DUPLICATE KEY UPDATE id='$id', username='$s_name', date = if(date=NULL, now(),date)
以下のような結果にしたいです!
after_TBL
id | username | date
01 | aaaaaaaa | 2015-06-01 00:34:21
02 | bbbbbbbb | 更新した日付
03 | cccccccc | 更新した日付
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/01 14:14