sql中表的自我关联:
sql语句如下:
UPDATE arc_container
SET note = '~'
WHERE
CODE IN(
SELECT code FROM arc_container WHERE note <> '~' AND note <> 'note' AND note <> 'note2' )
会提示
这里的意思是 你不能拿出这个表中的某些值,再update此表,也就是不能用同一表中查询的数据,作为更新同一表中的数据的条件。此时只需要在外面嵌套一层,骗过数据库即可。
更改后的sql语句如下:
UPDATE arc_container
SET note = '~'
WHERE
CODE IN(
select c.code from(SELECT a.* FROM arc_container a WHERE a.note <> '~' AND a.note <> 'note' AND a.note <> 'note2') c )