码迷,mamicode.com
首页 > 数据库 > 详细

mysql 操作

时间:2015-04-21 14:31:50      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

MySql报错: You can‘t specify target table ‘table name‘ for update in FROM clause

2008-09-17 13:51天上人间兮 | 分类:数据库DB | 浏览43478次
在Mysql下执行: delete   from   blur_article    where   id   not   in(select   min(id)   from  blur_article    group   by   title)
用途是去重复标题,但是却报错! #1093 - You can‘t specify target table ‘blur_article‘ for update in FROM clause
在Mysql下执行: select * from blur_article where id not in(select min(id) from blur_article group by title) 执行查询语句却显示成功!
怎么回事呀,如果上面的delete不能执行,有没有别的sql可以做这样的操作?
我是想做一个去重复操作,比如说: 字段          id       title                  1           张三                  2           李四                  3           张三                  4           王五                  5           李四   
最终结果是 id title 1 张三 2 李四 4 王五
 
 
mysql中不能这么用。 (等待mysql升级吧) 错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中) 
替换方案: create table tmp as select min(id) as col1 from blur_article group by title; delete from blur_article where id not in (select col1 from tmp); drop table tmp;
已经测试,尽请使用

mysql 操作

标签:

原文地址:http://www.cnblogs.com/zhenfeng/p/4444178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!