我想更新数据库,但我想留下5个帖子,这样它们就不会受到影响,其余的会根据要求进行更新。我尝试了下面的方法,但它不起作用,有人能够破解这个代码。谢谢。UPDATE `post` SET active = '1' WHERE `user` = '".$my['id']."' NOT IN (SELECT id FROM `post` WHERE `user` = '".$my['id']."' LIMIT 5)
2 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
试试这个
UPDATE post SET active = '1'
WHERE `user` = '".$my['id']."' and id not IN (
SELECT id FROM (
SELECT id FROM post
WHERE `user` = '".$my['id']."'
ORDER BY id ASC
LIMIT 0, 5
) tmp
)
UYOU
TA贡献1878条经验 获得超4个赞
将子查询移动到 :JOIN
UPDATE post p LEFT JOIN
(SELECT p.id
FROM post p
WHERE p.user = '".$my['id']."'
LIMIT 5
) pp
ON p.id = pp.id
SET active = '1'
WHERE p.user = '".$my['id']."' AND
pp.id IS NULL;
MySQL不容易允许您在or子句的子查询中引用正在更新的表。但是,它允许s,这是解决此问题的推荐方法。WHERESETJOIN
- 2 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消