我創建了一個查詢來洗掉表中的資料(我使用的是子查詢)。table_a包含21000個資料。如何用下面的查詢來洗掉資料,需要做一些修改。
delete from table_a where id in(SELECT GROUP_CONCAT(N.) id) FROM table_a N
INNER JOIN table_b E ONN. form_id=E.form_id and N.element_id=E.element_id
WHERE N.option_value=0 ANDE. element_type IN('checkbox', 'radio', 'select')
uj5u.com熱心網友回復:
你不需要一個子選擇。你可以在你的陳述句中直接參考你想洗掉的表,就像這樣:
DELETE N
FROM table_a N
INNER JOIN table_b E ON N.form_id = E.form_id
AND N.element_id = E.element_id
AND E. element_type IN('checkbox','radio','select')
WHERE N.option_value = 0.
uj5u.com熱心網友回復:
只是為了給juergen_d的答案提供一個選擇,你也可以創建> insert > rename > drop.
CREATE TABLE temp_source_table LIKE source_table; -- indeces are copied
INSERT INTO temp_source_table SELECT * FROM source_table WHERE < 條件>。
-- 你選擇你要保存的資料而不是洗掉的資料。
--也許在繼續進行...之前做一些檢查和平衡。
重命名TABLE source_table TO origin_source_table, temp_source_table TO source_table;
DROP TABLE origin_source_table;
當然,這取決于有關表的使用情況,但在有大量資料和/或復雜指標的表上(不知道臨界點),這可能是一個更快的選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/333995.html
標籤:
