2010-08-05 100 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