我有ATM卡的數據庫中有字段account_no,card_no,is_blocked,is_activated,issue_date 字段帳號和卡號不唯一,因爲舊卡將過期並標記爲is_block = Y和另一個具有相同卡號的記錄,帳號將被插入到具有is_blocked = N的新行中。現在我需要更新is_blocked /與ISSUE_DATE即UPDATE語句where子句中的子查詢
UPDATE card_info set is_blocked='Y' where card_no='6396163270002509'
AND opening_date=(SELECT MAX(opening_date) FROM card_info WHERE card_no='6396163270002509')
幫助is_activated但不允許我這樣做 它拋出以下錯誤
1093 - You can't specify target table 'card_info' for update in FROM clause
MySQL有這麼多愚蠢的限制,這是其中之一。你的解決方案有效 – stamster