2013-06-30 23 views
0

例如,我在網頁上列出了帶有複選框的項目,用戶可以檢查其中的很多項來執行某些操作(刪除,設置狀態(活動,非活動)等等)。用戶可以一次檢查甚至100個以上的物品。那麼,我應該執行100個或更多的SQL查詢嗎?刪除/更新選中的項目:mysql,最佳實踐

更新: E.g.在Gmail中,您可以將多個字母選中爲已讀/未讀或刪除它們。

+0

我們需要知道更多。這並沒有給我們足夠的信息。 –

+0

我只需要一個邏輯/算法,我不需要代碼,例如我在我的問題中寫了一個小更新。 – webprogrammer

回答

0

您可以從應該刪除/更新的記錄中取出id,並使用in()執行您喜歡的操作。例如:

delete from your_table 
where id in (1, 3, 5, 99) 

update your_table 
set `state` = 'inactive' 
where id in (1, 3, 5, 99) 
+0

如果用戶檢查了100個ID甚至500個,這個查詢會很慢嗎? – webprogrammer

+0

我不這麼認爲。但是如果你有大量'id',我建議使用'between':'其中id在1到399之間' –

+0

我不能確定id是否在1-500範圍內,大部分範圍都會介於1和1 000 000之間...... – webprogrammer

0

我假設你不使用異步調用更新數據庫。

的SQL可以是這個樣子:

UPDATE `articles` SET active = 1 WHERE `articles`.`id` IN (3, 4, 10, 230, 12, 32) 
+0

如果用戶檢查100個ID甚至500個,這個查詢會很慢嗎? :) – webprogrammer

+0

不,我不知道。 100個異步調用 - 這是一個非常糟糕的主意。 – webprogrammer

+0

速度取決於你的數據庫模式,記錄數量等,但可能沒有更快的方法來實現這一點。 –