我有一個這樣的「用戶」 SQL表結構(隨機生成的ID,而不是自增):INSERT成表,如果一個不同的結果不存在
ID name deleted lastActive
3242 Joe 0 20-6-2012 23:14
2234 Dave 0 20-6-2012 23:13
2342 Simon 1 20-6-2012 23:02
9432 Joe 1 20-6-2012 22:58
可以有多個刪除(已刪除= 1)名稱相同的用戶,但只有1名具有相同名稱的未刪除用戶(因此添加Simon很好,但Dave不是)。只有在一個SQL查詢中沒有已經具有相同名稱和已刪除= 0的記錄的情況下如何插入?我需要這樣的:
INSERT INTO users (ID, name) VALUES ($id, $name)
WHERE NOT EXISTS (SELECT 1 FROM users WHERE name = $name AND deleted = 0)
但是這是不正確的語法。
爲什麼不乾脆 '不刪除' 的用戶名? –
@MarcB,因爲它將是具有不同ID的新用戶。用戶名被設置爲在5分鐘的非活動後被刪除,以便其他人可以使用它們,但我無法完全從表中刪除它們,因爲我需要能夠將它們稍後鏈接到報告中 – Timm