人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLとPHPのdatetimeと条件操作(?)について質問です。

MySQL内に以下のようなテーブルが2つあります。
user
-user_id (primary key+auto inclse)
-login_date (datetime)
-state (int)

order
-order_id (primary key+auto inclse)
-expire_date (datetime)

login_dateはログインした時に毎回current dateにupdateされます。
expire_dateには予めそれぞれ日時が指定されています。

login_dateがexpire_dateを越えている場合、table1のstateに1という数字を入れたいのですが
どうすればよいでしょうか。


サンプルソース等があると助かります。

宜しく御願いします。


●質問者: zipzap-wave
●カテゴリ:インターネット ウェブ制作
✍キーワード:Key MySQL PHP State USER
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● b-wind
●80ポイント

MySQL4.1 以降限定。

UPDATE user SET state = 1 WHERE login_date > ANY ( SELECT expire_date FROM order WHERE order.order_id = user.user_id );

user テーブルと order テーブルの関係性がわからんので、取りあえずプライマリーキーで条件付けている。

ほかの条件があるなら、「 order.order_id = user.user_id 」のところを書き換えればOK。

MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.2.3 ANY、IN、SOME とともに使用したサブクエリ

◎質問者からの返答

なるほど!

解決しました!ありがとうございます!!

MySQLで条件(?)をかけてあげればいいんですね。

php内でUNIX Dateに変換して色々いじって、結局できなかったのでご相談したのでした。


ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ