我有兩個mysql表sent
和queue
。我將成員插入queue
表中。但是我不想再次插入同一個成員 - 如果他們在sent
表中。他們已經收到邀請。Mysql在插入數據時檢查重複項
如何檢查插入queue
的成員是否不存在於sent
?
我有兩個mysql表sent
和queue
。我將成員插入queue
表中。但是我不想再次插入同一個成員 - 如果他們在sent
表中。他們已經收到邀請。Mysql在插入數據時檢查重複項
如何檢查插入queue
的成員是否不存在於sent
?
INSERT
INTO queue (member)
SELECT $member
FROM dual
WHERE $member NOT IN
(
SELECT member
FROM sent
)
嘗試從發送的表中選擇用戶,如果沒有返回的行,則插入到隊列表中。否則什麼都不要做對於比您更深入的深度,您需要披露更多的架構以及將用戶稱爲唯一(電子郵件地址?)的內容。
如果這是你的應用程序的原則,即不能有相同的隊列中的條目,爲什麼不加唯一約束(上MEMBER_EMAIL,member_id或任何標識可能是)你的隊列表? 然後,您可以使用REPLACE INTO插入數據......實際上意思是: 如果存在具有相同主鍵或唯一鍵的現有值,則在插入新鍵值之前將刪除它。
REPLACE INTO queue (member_email, queue_detail)
VALUES ('already_existing_email', 'some_data');
這實際上會更新has_existing_email與'some_data'的輸入。
如果沒有條目* already_existing_email *,則會插入數據。