Mysql 我的SQL代码中的错误在哪里?
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
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))
)