mysql - 错误代码 : 1093. 表 'site_html' 被指定了两次,既作为 'UPDATE' 的目标又作为数据的单独源

标签 mysql sql

我想用相应的 id 更新表的“状态”列,但它导致我出现错误代码 1093。 下面是我的 SQL 查询

Update site_html Set status='Update Found' 
Where id = (
            select id 
            from site_html
            where link='http://www.example.com'); 

我该如何纠正这个错误?我是 SQL 的新手。

最佳答案

在 MySQL 中,您不能直接修改在 SELECT 部分中使用的同一个表名。所以你可以通过表别名来完成。

update site_html AS s, (select id  from site_html where link='http://www.example.com') AS t
set status='Update Found' 
where s.id = t.id;

关于mysql - 错误代码 : 1093. 表 'site_html' 被指定了两次,既作为 'UPDATE' 的目标又作为数据的单独源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37781289/

相关文章:

php - 如何防止 PHP 中的 SQL 注入(inject)?

MySql on update 触发器。 DELIMITER 错误

sql - 对 2 个表使用插入/更新 - Oracle Apex

sql - Oracle UPDATE 使用包含 JOIN 的 SELECT 语句

PHP MySQLi - 从具有绑定(bind)参数的查询中返回单个值?

MySQL JOIN 两个表最接近的匹配值

php - 锁定 PHP 以实现关键部分 - MySQL 的意外结果

mysql - SQL 和新的运行时表

mysql - 产生以下输出的 SQL 查询?

java - 我可以将包含数据的字符串与 mysql 查询连接起来吗?