2015-05-03 2 views
0

SQL Command:где моя ошибка в моем 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)) 
) 

внутренний SELECT запрос отдельно работать нормально

+0

что не соответствует вашему запросу? – Alex

+0

Я не знаю, но он не работает и имеет ошибку около EXISTS – Simon

+2

попробуйте заменить 'EXISTS'' IN' – Alex

ответ

2
UPDATE table1 
SET colOne=1 
WHERE id IN (
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)) 
) 
0

вы имели в виду использование = вместо того, существует

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)) 
) 
+0

даже я пробую это, но не работаю – Simon

0

вы также можете сделать это

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)) 
) 
Смежные вопросы