我已經搜索了很長一段時間,但我沒有找到我的問題的答案。首先讓我解釋我的問題來自哪裏。MySQL更新如果存在,插入如果不存在,刪除如果不存在(周計劃配置文件)
我有一個網絡應用程序,它有一個用戶表單,用戶可以在其中指定他/她可用的星期幾以及這幾天的辦公時間。想象一下,這是一個帶有複選框的網絡表單,適用於每個複選框/天的即時和隨時下載。現在,如果用戶配置文件插入到數據庫表我有我的表是這樣的:
idUser | idDay | fromTime | toTime
1 | 0 | 08:00 | 09:00
(在這個例子中0代表週一(0 =月 - 6 = SU))
中當然有更改用戶配置文件的功能。所以有可能首先從早上5點到下午3點用戶可以使用mo-fr。現在配置文件被更改,以便用戶只能從早上5點到下午3點使用mo,fr,直到下午1點才使用,並且從上午9點到下午5點使用sa。在這種情況下,我必須更新現有條目,刪除已刪除的條目(在這個例子中是tue)並插入新的可用天數。
現在我首先刪除用戶的所有條目,然後我執行一個新的插入。這很容易,在這種情況下可能是最好的選擇(因爲每個用戶最多可以有7個條目)。但同樣的問題可能會出現在不同的情況下,可能會更好地優化查詢。
所以最後我的問題是:是否有可能執行更新如果存在,插入如果不是,並刪除所有其他條目中只有一個查詢?
我希望我的問題是可以理解的。
嗨,我認爲和你一樣。但是如果你不知道有多少行將被刪除/插入,JvdBerg是正確的。因此,如果可能的條目數量嚴格限制爲少數(本例中爲7),我傾向於使用我目前使用的解決方案和您建議的解決方案。謝謝。 – Worn