Mysql 我的SQL代码中的错误在哪里?

Mysql 我的SQL代码中的错误在哪里?,mysql,sql,exists,Mysql,Sql,Exists,SQL命令: UPDATE table1 SET colOne=1 WHERE id EXISTS ( SELECT IF(col1=19,col2,col1) AS id FROM table2 WHERE (col3=19 AND col4='X') OR (col3=0 AND col4='Y' AND (col1=19 OR col2=19)) ) 内部选择查询单独工作正常您的意思是使用=而不是exists吗 UPDATE table1 SET colOne=1 WHERE id

SQL命令:

UPDATE table1
SET colOne=1
WHERE id EXISTS (
SELECT IF(col1=19,col2,col1) AS id
FROM table2 
WHERE
(col3=19 AND col4='X') 
OR 
(col3=0 AND col4='Y' AND (col1=19 OR col2=19))
)

内部
选择
查询单独工作正常

您的意思是使用=而不是exists吗

UPDATE table1
SET colOne=1
WHERE id = (
SELECT IF(col1=19,col2,col1) AS id
FROM table2 
WHERE
(col3=19 AND col4='X') 
OR 
(col3=0 AND col4='Y' AND (col1=19 OR col2=19))
)
你也可以这样做

UPDATE table1
SET colOne=1
WHERE EXISTS (
SELECT IF(col1=19,col2,col1) AS id
FROM table2 
WHERE
(col3=19 AND col4='X') 
OR 
(col3=0 AND col4='Y' AND (col1=19 OR col2=19))
)

您的查询有什么不正确?我不知道,但它不起作用,并且在@中用
替换
存在的
时出现了一个错误
UPDATE table1
SET colOne=1
WHERE EXISTS (
SELECT IF(col1=19,col2,col1) AS id
FROM table2 
WHERE
(col3=19 AND col4='X') 
OR 
(col3=0 AND col4='Y' AND (col1=19 OR col2=19))
)