作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 SQL UPDATE 查询有问题:
UPDATE gon_nu.migration_threads
SET AuthorID = 461376
WHERE AuthorID NOT IN (SELECT id AS AuthorID
FROM prod_playing.users_userprofile
WHERE username != 'OldPlayingUser');
它响应匹配项,但受影响的行数为 0。当 prod_playing.users_userprofile 中不存在 AuthorID 时,如何解决此问题,以便将 AuthorID 更新为 461376?
最佳答案
您的查询不起作用的一种可能是,当 username = 'OldPlayingUser'
时,users_userprofile.id
为 NULL
。这表明此查询可能会执行您想要的操作:
UPDATE gon_nu.migration_threads
SET AuthorID = 461376
WHERE AuthorID NOT IN (SELECT id AS AuthorID
FROM prod_playing.users_userprofile
WHERE username <> 'OldPlayingUser' and id is not null
);
但是,您的问题表明您在 where
子句中可能有太多否定。在 where
条件不等于的子查询中使用 not in
的情况并不常见。也许这符合您的要求:
UPDATE gon_nu.migration_threads
SET AuthorID = 461376
WHERE AuthorID NOT IN (SELECT id AS AuthorID
FROM prod_playing.users_userprofile
WHERE username = 'OldPlayingUser' and id is not null
);
关于mysql - UPDATE SET 不适用于 NOT IN (SELECT)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25708674/
我是一名优秀的程序员,十分优秀!