|
第一個選擇是使用一種過程化的程序語言(例如Perl或PHP)來提交一個SELECT查詢獲得要被刪除記錄主鍵,並然後使用這些值構造DELETE語句(DELETE FROM ... WHERE ... IN (key1, key2, ...))。
第二個選擇是使用交互式SQL自動構造一套DELETE語句,使用MySQL擴展CONCAT()(代替標准||操作符)。例如:
SELECT CONCAT('DELETE FROM tab1 WHERE pkid = ', tab1.pkid, ';')
FROM tab1, tab2
WHERE tab1.col1 = tab2.col2;
你可以把這個查詢放在一個腳本文件並且從它重定向輸入到mysql命令行解釋器,將其輸出作為管道返回給解釋器的第2個實例:
prompt> mysql --skip-column-names mydb < myscript.sql | mysql mydb
MySQL僅支持INSERT ... SELECT ...和REPLACE ... SELECT ...,獨立的子選擇將可能在3.24.0得到,然而,在其他環境下,你現在可以使用函數IN()。 |
|