如何在MySQL中运行此查询(仍在一个查询中)?

如何在MySQL中运行此查询(仍在一个查询中)?,mysql,sql,Mysql,Sql,我有这个查询,我尝试了一些变体,但由于各种不同的原因,它不会运行: UPDATE `table1` SET `col1`='1',`col2`='1' WHERE `col3`='302' && `col4`='136' && `col5`=(SELECT MAX(`col5`) FROM `table1` WHERE `col3`='

我有这个查询,我尝试了一些变体,但由于各种不同的原因,它不会运行:

UPDATE `table1` 
    SET `col1`='1',`col2`='1' 
        WHERE `col3`='302' && `col4`='136' && 
            `col5`=(SELECT MAX(`col5`) 
                FROM `table1` 
                    WHERE `col3`='302' && `col4`='136')

使用
代替
&&
。此外,如果col
N
类型是数字,则不必使用单引号

UPDATE `table1` 
SET `col1`='1',`col2`='1' 
WHERE `col3`='302' 
  AND `col4`='136' 
  AND `col5` = (SELECT x.* FROM (SELECT MAX(`col5`) 
                 FROM `table1` 
                 WHERE `col3`='302' AND `col4`='136') x)

我认为您应该用
替换
&&
,它应该可以工作

这会产生相同的错误,即
您不能在FROM子句中指定更新的目标表“table1”
您可以添加一些关于为什么它不会运行的信息吗?因为查询是错误的。错误是
您不能在FROM子句中为更新指定目标表“table1”。诺杜利西斯答对了。