mysql删除一个条目

编程入门 行业动态 更新时间:2024-10-28 12:28:13

mysql删除一个<a href=https://www.elefans.com/category/jswz/34/1771400.html style=条目"/>

mysql删除一个条目

在mysql中删除特定字段重复的条目(保留一条)

我想大家都能用到,就以帝国ecms为例:

思路:

1.以phome_ecms_news表为基础,建立相同结构的临时表一份(唯一不同的是以title为主键,这样标题就不会重复)

2.将phome_ecms_news内容导入新表,在导入过程中,自动抛弃标题相同(也就是title主键相同)的条目

3.将phome_ecms_news清空

4.将临时表内容导回到phome_ecms_news

sql语句:

/****建立临时表(此语句摘抄于ecms安装文件,并稍加改动——主要是设置title为主键,注意斜体部分)****/

create table phome_wm_mjj (id int(11) NOT NULL , classid smallint(6) NOT NULL, onclick int(11) NOT NULL, newspath varchar(50) NOT NULL, keyboard varchar(255) NOT NULL, keyid varchar(255) NOT NULL, userid int(11) NOT NULL, username varchar(30) NOT NULL, ztid text NOT NULL, checked tinyint(1) NOT NULL, istop tinyint(4) NOT NULL, truetime int(11) NOT NULL, ismember tinyint(1) NOT NULL, dokey tinyint(1) NOT NULL, userfen int(11) NOT NULL, isgood tinyint(1) NOT NULL, titlecolor varchar(10) NOT NULL, titlefont varchar(255) NOT NULL, titleurl varchar(200) NOT NULL, filename varchar(60) NOT NULL, filenameqz varchar(28) NOT NULL, fh tinyint(1) NOT NULL, groupid smallint(6) NOT NULL, newstempid smallint(6) NOT NULL, plnum int(11) NOT NULL, firsttitle tinyint(1) NOT NULL, checkuser text NOT NULL, docheckuser text NOT NULL, viewcheckuser text NOT NULL, returncheck tinyint(1) NOT NULL, notdocheckuser text NOT NULL, totaldown int(11) NOT NULL, title varchar(200) NOT NULL, newstime datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, titlepic varchar(200) NOT NULL, wplay tinyint(1) NOT NULL, ftitle varchar(200) NOT NULL, smalltext text NOT NULL, writer varchar(30) NOT NULL, befrom varchar(60) NOT NULL, newstext mediumtext NOT NULL, closepl tinyint(1) NOT NULL, havehtml tinyint(1) NOT NULL, PRIMARY KEY (title), KEY classid (classid));

/****将原有数据导入临时表(这里的关键是ignore,没有这个是不能完整导入滴,注意斜体部分)****/

insert ignore into phome_wm_mjj select distinct * from phome_ecms_news;

/****清空原数据表****/

truncate phome_ecms_news;

/****将临时表数据复制到原表****/

insert into phome_ecms_news select distinct * from phome_wm_mjj;

/****清空临时表(可选)****/

truncate phome_wm_mjj;

/****或删除临时表(可选)****/

drop table phome_wm_mjj;

在我机器上测试成功,环境win2003+php4.4+mysql4.0.2.6

按照这个思路,可以将所有mysql数据库中特定字段重复的条目过滤掉:ohh:

特别注意:

实例中的临时表名phome_wm_mjj请替换成自己需要的名字,否则有人自杀或者被人追杀都不太好:ohh:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以下是我在MANGOS整理怪物掉率表时使用的语句,大家可以直接选用。

/****建立临时表(此语句摘抄于ecms安装文件,并稍加改动——主要是设置title为主键,注意斜体部分)****/

CREATE TABLE `creature_loot_template_union` (

`entry` int(11) unsigned NOT NULL default '0',

`item` int(11) unsigned NOT NULL default '0',

`ChanceOrRef` float NOT NULL default '100',

`QuestChanceOrGroup` tinyint(3) NOT NULL default '0',

`mincount` tinyint(3) unsigned NOT NULL default '1',

`maxcount` tinyint(3) unsigned NOT NULL default '1',

`quest_freeforall` tinyint(3) unsigned NOT NULL default '1',

PRIMARY KEY  (`entry`,`item`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Loot System';

/****将原有数据导入临时表(这里的关键是ignore,没有这个是不能完整导入滴,注意斜体部分)****/

insert ignore into creature_loot_template_union select distinct * from creature_loot_template;

/****清空原数据表****/

truncate creature_loot_template;

/****将临时表数据复制到原表****/

insert into creature_loot_template select distinct * from creature_loot_template_union;

/****清空临时表(可选)****/

truncate creature_loot_template_union;

/****或删除临时表(可选)****/

drop table creature_loot_template_union;

更多推荐

mysql删除一个条目

本文发布于:2024-02-11 12:36:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1681012.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:条目   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!