2014-12-05 40 views
1

相等的值更新列我有一個簡單的表是這樣的:在同一個表

id | title   | note 
---------------------------------- 
1 | Lorum Ipsum  | some note 
2 | Lorum Not Ipsum | some note 
3 | Lorum Ipsum  | another note 
4 | Lorum Ipsum  | some note 

我使用下面的語句:

UPDATE table 
SET title = 'newTitle' 
WHERE title = (SELECT title FROM table WHERE id = 1) 
AND note = (SELECT note FROM table WHERE id = 1) 

但我正在逐漸「ER_UPDATE_TABLE_USED」。

如果我提供的id = 1,應該更新ID = 1和ID = 4

行如何通過只提供一個ID更新同桌相等值的列標題?

+0

哪個dbms,是mysql嗎? – radar 2014-12-05 02:10:56

+0

是的,我添加了標籤。 – Hans 2014-12-05 02:11:40

回答

4

MySQL不允許你使用的表格被在子查詢中的updatedelete更新。 您可以改用join

UPDATE Table1 T 
JOIN (select title,note from Table1 where id =1) NewT 
on T.title = NewT.title 
and T.note = NewT.note 
SET T.title = 'newTitle' 
+0

'+ 1'。加入是首選方式。 – 2014-12-05 02:15:50

0
INSERT INTO Table 
    SET id=1, title='newTitle' 
ON DUPLICATE KEY UPDATE 
     title = VALUES(title);