Por*_*oru 0 mysql sql database mysql-error-1093
我有与其他问题相同的情况,但我不想选择行,我想更新这些行.
我使用了Scott Saunders的解决方案:
select * from table where email in (
select email from table group by email having count(*) > 1
)
Run Code Online (Sandbox Code Playgroud)
这有效,但我想更改/更新这些条目中的行值,所以我试过:
UPDATE `members` SET `banned` = "1" WHERE `ip` IN (
SELECT `ip` FROM `members` GROUP BY `ip` HAVING COUNT(*) > 1
)
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
您不能在FROM子句中为更新指定目标表'members'
使用中间子查询来解决1093错误:
UPDATE `members`
SET `banned` = '1'
WHERE `ip` IN (SELECT x.ip
FROM (SELECT `ip`
FROM `members`
GROUP BY `ip`
HAVING COUNT(*) > 1) x)
Run Code Online (Sandbox Code Playgroud)
否则,在派生表上使用JOIN:
UPDATE MEMBERS
JOIN (SELECT `ip`
FROM `members`
GROUP BY `ip`
HAVING COUNT(*) > 1) x ON x.ip = MEMBERS.ip
SET banned = '1'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8702 次 |
| 最近记录: |