繼此之後:SQL INSERT from SELECT以及在那裏標記的正確答案。SQL INSERT或UPDATE
我還需要能夠通過使用用戶名來檢查行是否已經存在。所以我會刪除,然後插入或有更好的方法嗎? 而如果是刪除,我怎麼說DELETE FROM表其中userid = 做用戶名在此處選擇 感謝
繼此之後:SQL INSERT from SELECT以及在那裏標記的正確答案。SQL INSERT或UPDATE
我還需要能夠通過使用用戶名來檢查行是否已經存在。所以我會刪除,然後插入或有更好的方法嗎? 而如果是刪除,我怎麼說DELETE FROM表其中userid = 做用戶名在此處選擇 感謝
如果刪除,那麼你可以使用:
DELETE a FROM Avatar a LEFT JOIN User u ON a.UserID=u.UserID WHERE u.UserName='theusername'
嘗試REPLACE INTO
,而不是INSERT INTO
。如果指定了UserID並且是表的主鍵,則將覆蓋UserID與您插入的行匹配的行。
要回答你的子問題,這將是DELETE FROM table WHERE UserID IN (SELECT UserID ...)
旁註:StackOverflow上是真的不學習基本的SQL的適當場所。如果你先讀第一個,你的問題會更好,相應的答案更有用。
來自另一個問題,你正在做一個「從select插入」,我假設你不想插入已經有你試圖插入的鍵的條目的行。我還假設它給你一些錯誤,如「找到重複密鑰」。
隨着礦山的假設條件下,解決方法是簡單的:INSERT後添加忽略關鍵字,所以你的查詢看起來是這樣的:
INSERT IGNORE... //rest of query