为了账号安全,请及时绑定邮箱和手机立即绑定

更新数据库并保留 5,使其不受影响

更新数据库并保留 5,使其不受影响

PHP
蓝山帝景 2022-09-03 17:35:15
我想更新数据库,但我想留下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

)


查看完整回答
反对 回复 2022-09-03
?
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


查看完整回答
反对 回复 2022-09-03
  • 2 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信