Php 更新数据库并保留5,使其不受影响
我想更新数据库,但我想留下5个帖子,这样他们就不会受到影响,其余的都会按要求更新 我尝试了下面的方法,但没有成功,是否有人能够破解此代码。 多谢各位Php 更新数据库并保留5,使其不受影响,php,mysql,sql,database,Php,Mysql,Sql,Database,我想更新数据库,但我想留下5个帖子,这样他们就不会受到影响,其余的都会按要求更新 我尝试了下面的方法,但没有成功,是否有人能够破解此代码。 多谢各位 UPDATE `post` SET active = '1' WHERE `user` = '".$my['id']."' NOT IN (SELECT id FROM `post` WHERE `user` = '".$my['id']."' LIMIT 5) 试试这个 UPDATE post SET active = '1' WHER
UPDATE `post` SET active = '1'
WHERE `user` = '".$my['id']."'
NOT IN (SELECT id FROM `post`
WHERE `user` = '".$my['id']."' LIMIT 5)
试试这个
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
)
将子查询移动到一个
联接:
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不允许您在WHERE
或SET
子句中引用子查询中正在更新的表。但是,它允许JOIN
s,这是解决此问题的推荐方法。mysql不支持子查询中的限制,您可以使用JOIN。“但它不起作用”--这意味着什么?上面的代码没有改变任何问题并发布a。此外,在子句中不允许该限制,你到底想在你身上实现什么呢?如果克劳斯这样做,我有三天的时间来解决这个问题。谢谢师父