0

私が現在持っているものは次のとおりです。

UPDATE card, records
IF(records.date_returned == null) THEN SET
card.last_seen = records.date_loaned
ELSE SET card.last_seen = records.date_returned
WHERE card.card_no = records.card_no

ちょっとした背景 - テーブル レコードには、date_loaned と date_returned の 2 つの列があり、date_returned はデフォルトで null に設定されています。更新時にtemp_cardのlast_seen列をdate_returnedに変更できるかどうか疑問に思っていました

確かに無理だけど、運試ししてるみたい!

-編集- *私はそれが自動であることをちょっと望んでいました (例えば、レコードが更新されると、これが last_seen の変更を引き起こします)

-編集-答えてくれたみんなありがとう!これが私が導き出した解決策です:

AFTER UPDATE ON records
FOR EACH ROW
Update card A
INNER JOIN records B
SET A.last_seen =
(CASE WHEN B.date_returned=null then B.date_loaned Else B.date_returned END )
WHERE A.card_no = B.card_no
4

2 に答える 2

0

このように試すことができます..

Update  Card A INNER JOIN Record B ON (A.card_no =B.card_no) SET A.last_seen =(
                           Case WHEN B.date_returned==null
                           then B.date_loaned 
                           Else B.date_returned
                           End
                          )
于 2013-07-10T09:13:51.827 に答える