SQL INSERT或UPDATE

时间:2010-08-05 03:28:24

标签: mysql c#-4.0

继续此之后:SQL INSERT from SELECT并在那里标记正确答案。

我还需要能够通过使用用户名检查该行是否已存在。那么我会删除然后插入还是有更好的方法? 如果是删除,我怎么说DELETE FROM表WHERE UserID = 用户名选择 感谢

3 个答案:

答案 0 :(得分:2)

如果删除,则可以使用:

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

答案 1 :(得分:0)

尝试使用REPLACE INTO代替INSERT INTO。如果指定了UserID并且该表是表的主键,则会覆盖其UserID与您插入的内容相匹配的行。

要回答您的子问题,请DELETE FROM table WHERE UserID IN (SELECT UserID ...)

附注:StackOverflow实际上不适合学习基本SQL。如果您先阅读 ,那么您的问题会更好,相应的答案会更有用。

答案 2 :(得分:0)

来自您正在进行“从select中插入”的另一个问题,我假设您不希望插入已经尝试插入的键的条目的行。我还假设它给你一些错误,比如“找到重复的密钥”。

根据我的假设,修复很简单:在INSERT之后添加IGNORE关键字,所以你的查询看起来像这样:

INSERT IGNORE... //rest of query