【发布时间】:2020-10-14 23:41:54
【问题描述】:
我正在尝试根据多次出现的值更新用户表中的行数。在这种情况下,它是用户电子邮件 - 因为用户可以注册此应用程序中托管的多个网站。
UPDATE users SET email = REPLACE(email,'@', CONCAT('+',user_id,'@'))
WHERE user_id IN (
SELECT user_id FROM users HAVING COUNT('email') > 1
);
这个查询给了我以下错误;
ERROR 1093 (HY000): You can't specify target table 'customer_entity' for update in FROM clause
我尝试了许多变体,但似乎没有一个有效。
【问题讨论】:
-
不行,因为我正在统计结果,所以不能使用 join 方法。子查询也不起作用并给出;错误 1140 (42000):在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #1 包含非聚合列 'db.users.user_id';这与 sql_mode=only_full_group_by 不兼容
-
响应“否”不适用于此处;)在我引用的两个链接之间至少有十几个好的建议。尝试其中一些,然后发回您的结果以及您可能遇到的任何其他问题。
-
'这能回答你的问题吗?'。否肯定是一个有效的回应。正如我所提到的,我已经查看了这两个并尝试了这些建议。还是谢谢你
标签: php mysql join count sql-update