2010-08-05 77 views
1

繼此之後:SQL INSERT from SELECT以及在那裏標記的正確答案。SQL INSERT或UPDATE

我還需要能夠通過使用用戶名來檢查行是否已經存在。所以我會刪除,然後插入或有更好的方法嗎? 而如果是刪除,我怎麼說DELETE FROM表其中userid = 做用戶名在此處選擇 感謝

回答

2

如果刪除,那麼你可以使用:

DELETE a FROM Avatar a LEFT JOIN User u ON a.UserID=u.UserID WHERE u.UserName='theusername' 
0

嘗試REPLACE INTO,而不是INSERT INTO。如果指定了UserID並且是表的主鍵,則將覆蓋UserID與您插入的行匹配的行。

要回答你的子問題,這將是DELETE FROM table WHERE UserID IN (SELECT UserID ...)

旁註:StackOverflow上是真的不學習基本的SQL的適當場所。如果你先讀第一個,你的問題會更好,相應的答案更有用。

0

來自另一個問題,你正在做一個「從select插入」,我假設你不想插入已經有你試圖插入的鍵的條目的行。我還假設它給你一些錯誤,如「找到重複密鑰」。

隨着礦山的假設條件下,解決方法是簡單的:INSERT後添加忽略關鍵字,所以你的查詢看起來是這樣的:

INSERT IGNORE... //rest of query