我需要創建一個MYSQL存儲過程,它將使用UNION查詢來查找五個表中的一個表中的電子郵件地址。一旦找到電子郵件地址,存儲過程需要更新原始表中的字段,並將信息插入到另一個表中。MySQL - 存儲過程 - 聯合選擇然後更新並插入
這裏是我的工會:
SELECT email, 'table1' AS nameoftable, status FROM table1
WHERE email = '[email protected]'
UNION
SELECT email, 'table2' AS nameoftable, status FROM table2
WHERE email = '[email protected]'
UNION
SELECT email, 'table3' AS nameoftable, status FROM table3
WHERE email = '[email protected]'
這應返回一個記錄,這將給我nameoftable變量,我需要在接下來的步驟,例如: [email protected] table1的一個
第一插入: 插入黑名單(電子郵件,表名,添加)選擇電子郵件,'nameoftable',添加從nameoftable WHERE email ='[email protected]';
然後更新: UPDATE nameoftable SET status ='D'WHERE email ='[email protected]';
當然,如果沒有記錄,程序應該退出。
所以,我試圖將這一切都推入一個存儲過程。此存儲過程將與電子郵件程序一起使用,該程序將根據請求從各種列表中刪除電子郵件。現在,我正在手工做,而且它變得乏味。
我會很感激任何指針或想法。提前致謝。