我们在做论坛网站时,经常需要对论坛内容进行批量修改,如果不采用数据库批量修改,就会把你累爬下,下面是学做网站汇总 DISCUZ 论坛常用批量修改 SQL 语句,根据自己的需要,使用常用 SQL 语句。注意在使用 SQL 语句前,一定要备份自己网站的数据库。
所有板块的特殊主题开启
UPDATE `cdb_forums` SET `allowpostspecial` = '31'
调整某个帖子的点击数
UPDATE cdb_threads SET views=点击数 WHERE tid=主题编号;
所有板块开启 media 代码
UPDATE `cdb_forums` SET `allowmediacode` = '1'
调整所有用户最大头像尺寸 (像素) 为 120
update cdb_settings set value = 120 WHERE variable = 'maxavatarpixel'
一次性关闭板块 fid20 帖子
UPDATE `cdb_threads` SET `closed` = '1' WHERE `fid` =20 ;
把发帖数为 0 的用户都转到某个用户组
update cdb_members set groupid = * where posts = 0;
UPDATE `cdb_usergroups` SET `allowinvite` = '1', `inviteprice` = '价格';
开启全部用户组的邀请注册权限 并设置价格
replace INTO cdb_settings VALUES ('watermarktype','0');
去除水印图片类型
update cdb_members set lastpost='1186675200';
调整用户最后登录时间为 2007 年 8 月 10 日
UPDATE `cdb_forums` SET `status` = '1',
`lastpost` = '' WHERE `fid` =6 LIMIT 1 ;
调整 板块隐藏的 sql!
完整关闭 supesite 的 sql 语句:
UPDATE `cdb_settings` SET `value` = '' WHERE `variable` = 'supe_siteurl' ;
UPDATE `cdb_settings` SET `value` = '' WHERE `variable` = 'supe_sitename';
UPDATE `cdb_settings` SET `value` = '0' WHERE `variable` = 'supe_status';
UPDATE `cdb_settings` SET `value` = '' WHERE `variable` = 'supe_tablepre';
UPDATE `cdb_settings` SET `value` = '0' WHERE `variable` = 'supe_circlestatus';
将 A 板块的所有帖子转到 B 板块的 C 分类里
update cdb_threads set fid=B 板块 ID,typeid=c 分类的 ID where fid=A 板块 ID;
update cdb_posts set fid=B 板块 ID where fid=A 板块 ID;
执行前备份一下数据库
去除后台管理员 ip 登录限制
UPDATE `cdb_settings` SET `value` = '' WHERE CONVERT( `variable` USING utf8 ) ='adminipaccess' LIMIT 1 ;
删除风格 5
delete from cdb_styles where styleid=5 limit 1;
UPDATE `cdb_members` SET `pmsound` = '1'
论坛所有用户短消息提示音修改为提示音 1
delete from cdb_usergroups where groupid = 0
删除 groupid = 0 的用户组
UPDATE `cdb_forums` SET `alloweditpost` = '1'
所有板块开启允许编辑帖子
论坛后台 解除 insenz 绑定语句
delete from cdb_settings where variable='insenz'
论坛后台执行后 就可以 重新注册和绑定了
关闭游客浏览所有版块的语句
可以这样构造 SQL 语句
update cdb_forumfields set viewperm =' 允许浏览的用户组的 ID ' where fid in(论坛板块 ID)
如:
update cdb_forumfields set viewperm =' 1 2 ' where fid in(1,2)
UPDATE `cdb_forumfields` SET `rules` = '板块规则'
所有板块的板块规则设置~!
UPDATE `cdb_forums` SET `jammer` = '1'
开启所有板块的干扰码
开启所有会员组邀请注册的权限
UPDATE cdb_usergroups SET allowinvite=1, allowmailinvite=1, maxinvitenum=10, maxinviteday=15, inviteprice=10;
//allowinvite 允许使用邀请注册:
//allowmailinvite 允许发送邀请注册:
//maxinvitenum 24 小时内购买邀请码最大数量:
//maxinviteday 邀请码有效期:
//inviteprice 邀请码购买价格:
修改最高日发帖数
UPDATE `cdb_settings` SET `value` = '昨日发帖数 最高日发帖数' WHERE `variable` ='historyposts' LIMIT 1 ;
昨日发帖数 和 最高日发帖数 修改为你需要的数字即可, 升级完 sql 后, 更新缓存
'昨日发帖数 最高日发帖数' 中间的空格是 tab 键~!
UPDATE `cdb_settings` SET `value` = '0' WHERE CONVERT( `variable` USING utf8 ) = 'gzipcompress' LIMIT 1 ;
关闭论坛的 gzip 设置!
批量对用户组禁言
update cdb_members set adminid='-1', groupid='4' where groupid='?';
delete from cdb_threads where authorid=0;
delete from cdb_posts where authorid=0;
批量删除游客组的发帖和主题
uid 2000~3000 的会员全部积分清零
update cdb_members set credits=0,extcredits1=0,extcredits2=0,extcredits3=0,extcredits4=0,extcredits5=0,extcredits6=0,extcredits7=0,extcredits8=0 where uid > 2000 and uid < 3000;
指定范围内的审核主题通过审核
update cdb_threads set displayorder=0 where tid > 最小的 tid and tid < 最大的 tid
指定范围内的审核帖子通过审核
update cdb_posts set invisible = 0 where tid > 最小的 tid and tid < 最大的 tid
批量删除未审核通过的帖子和主题
delete from cdb_threads where displayorder=-2;
delete from cdb_posts where invisible=-2;
批量关闭投票
UPDATE cdb_threads SET closed = 1 WHERE special=1
UPDATE `cdb_members` SET `secques` = ''
清空用户安全问答!
清空某个用户组的全部积分 sql:
update cdb_members set credits = 0, extcredits1 = 0, extcredits2 = 0, extcredits3 = 0, extcredits4 = 0, extcredits5 = 0, extcredits6 = 0, extcredits7 = 0, extcredits8 = 0, where groupid = 用户组 id;
update cdb_usergroups set allowtransfer=0
关闭所有用户组的积分转账
update cdb_threads set readperm=100 where dateline<1133300000
修改 05 年 11 月 29 日 21 点 33 份 20 秒 前的主题阅读权限 100
其中 1133300000 是 unix 时间戳 (以秒为单位) 代表 05 年 11 月 29 日 21 点 33 份 20 秒
readperm=100 代表阅读权限
把 2005 年 1 月 1 日以前的阅读权限设高.
update cdb_threads set readperm=100 where dateline<1104537600 and digest=0
批量替换帖子里面的评分者的用户名
update cdb_ratelog set uid = '新 uid', username = '新 username' where uid = '旧的 uid';
所有的附件默认阅读权限为 1
update cdb_attachments set readperm=1
统计发帖量大约 0 的所有用户积分 1 的总量
SELECT count(`extcredits1`) FROM `cdb_members` where `posts`=0
批量修改 uid1~6 会员的 showemail 为 1
UPDATE `cdb_members` SET `showemail` ='1' WHERE `uid` in(1,2,3,4,5,6);
将主题 tid 大于 14651 的所有主题减去 16761780
update cdb_threads set tid=tid-16761780 where tid>14651;
update cdb_posts set tid=tid-16761780 where tid>14651;
update cdb_attachments set tid=tid-16761780 where tid>14651;
update cdb_myposts set tid=tid-16761780 where tid>14651;
update cdb_activities set tid=tid-16761780 where tid>14651;
update cdb_activityapplies set tid=tid-16761780 where tid>14651;
update cdb_favorites set tid=tid-16761780 where tid>14651;
update cdb_mythreads set tid=tid-16761780 where tid>14651;
update cdb_paymentlog set tid=tid-16761780 where tid>14651;
update cdb_polloptions set tid=tid-16761780 where tid>14651;
update cdb_polls set tid=tid-16761780 where tid>14651;
update cdb_pushedthreads set tid=tid-16761780 where tid>14651;
update cdb_relatedthreads set tid=tid-16761780 where tid>14651;
update cdb_rewardlog set tid=tid-16761780 where tid>14651;
update cdb_rsscaches set tid=tid-16761780 where tid>14651;
update cdb_sessions set tid=tid-16761780 where tid>14651;
update cdb_subscriptions set tid=tid-16761780 where tid>14651;
update cdb_threadsmod set tid=tid-16761780 where tid>14651;
update cdb_tradelog set tid=tid-16761780 where tid>14651;
update cdb_trades set tid=tid-16761780 where tid>14651;
此操作前请注意网站备份!!(按照 5.0 数据表进行修改的 6.0 的需要查看下数据库对比下)
将积分 1 加到积分 2 上 并清零积分 1 的 sql
update cdb_members set extcredits1=extcredits1+extcredits2;
update cdb_members set extcredits1='0';
把 300 天未登录的 ID 移到某一特殊用户组
update cdb_members set adminid=-1,groupid=特殊用户组 ID where lastactivity< unix_timestamp()-300*24*3600
服务器上禁止 IP 访问命令
iptables -I INPUT -p TCP -s 218.0.211.0/24 --dport 80 -j DROP
查一个 IP 有哪个会员登录
select * from cdb_membsers where lastip="IP"
UPDATE cdb_posts p, cdb_attachments a SET p.attachment=1 WHERE p.pid=a.pid;
找回丢失附件的 sql 语句
更新昨日发贴数
昨日发贴数:
select count(*) from cdb_posts where dateline> 昨天 0 时的时间戳 and dateline< 今天 0 时的时间戳
更新昨日发贴数:
UPDATE `cdb_settings` SET `value` = '昨日发帖数 1428' WHERE `variable` ='historyposts' LIMIT 1 ;
把"新手上路"用户组下的所有会员转换到另一个特殊的用户组
pl: 特殊用户组没有关联任何的管理组
update cdb_members set groupid=特殊用户组的 id where groupid=新手上路用户组的 id and adminid=0
删除一个板块的所有回复
delete from cdb_posts where fid = '需要删除回复的版块 id' and first = 0;
delete from cdb_forums where fid=23 limit 1;
删除 fid23 的板块
圈子 sgid 字段缺少 添加的 sql
ALTER TABLE cdb_threads ADD sgid mediumint(8) unsigned NOT NULL default '0'
update cdb_threads set replies=(select count(*) from cdb_posts where tid=47708) where tid=47708
更新 tid27708 主题的统计
关闭所有板块的允许其它模块共享
update cdb_forums set allowshare=0
UPDATE `cdb_memberfields` SET `sightml` = ' '
所有用户的签名清空
UPDATE cdb_posts SET subject=REPLACE(subject,'#','楼');
批量替换帖子中的回复* #的显示为 *楼
删除一个主题的所有回复
delete from cdb_posts where tid = '需要删除回复的主题的 tid' and first = 0;
UPDATE `cdb_settings` SET `value` = '1' WHERE CONVERT( `variable` USING utf8 ) = 'thumbstatus' LIMIT 1 ;
设置缩略图为 为图片附件添加缩略图
UPDATE `cdb_settings` SET `value` = '2' WHERE CONVERT( `variable` USING utf8 ) = 'thumbstatus' LIMIT 1 ;
设置缩略图为 将图片附件缩到指定的大小
批量验证所有未验证的会员
UPDATE `cdb_members` SET `groupid` = '10' WHERE groupid='8';
批量删除游客回帖和主题
delete from cdb_threads where authorid=0;
delete from cdb_posts where authorid=0;
删除在 180 天之前的全部短消息
delete from cdb_pms where dateline<1190518730
清空某个用户的已发短消息
update cdb_pms set delstatus=1 where msgfromid=发送者 ID
所有用户组 (包括系统用户组,普通用户组,特殊用户组) 都可以参与投票的 SQL 语句:
update cdb_usergroups set allowvote=1 where groupid<4 or groupid>9
UPDATE `cdb_usergroups` SET `raterange` = '1 -1 1 100
2 -1 1 100'
开启所有用户组的扩展积分 1 和 2 的评分值为 最小-1 最大 1 24 小时 100
图片附件设置正确 但是不直接显示的调整 sql:
update cdb_attachments set `isimage` =1 where SUBSTRING(`filename`,-3,3)='jpg' or SUBSTRING(`filename`,-3,3)='gif'
固定天数内一部份附件到远程附件的 sql
update cdb_attachments set remote = '1' where dateline<unix_timestamp()-86400*天数
修改所有用户组评分的 SQL 语句
update `cdb_usergroups` set `raterange`='扩展积分 ID 评分最小值 评分最大值 24 小时最大评分数
扩展积分 ID 评分最小值 评分最大值 24 小时最大评分数'
将主题 tid 大于 4009 的所有主题减去 16773200
update cdb_activities set tid=tid-16773200 where tid>4009;
update cdb_activityapplies set tid=tid-16773200 where tid>4009;
update cdb_attachments set tid=tid-16773200 where tid>4009;
update cdb_campaigns set tid=tid-16773200 where tid>4009;
update cdb_debateposts set tid=tid-16773200 where tid>4009;
update cdb_debates set tid=tid-16773200 where tid>4009;
update cdb_favorites set tid=tid-16773200 where tid>4009;
update cdb_forumrecommend set tid=tid-16773200 where tid>4009;
update cdb_myposts set tid=tid-16773200 where tid>4009;
update cdb_mythreads set tid=tid-16773200 where tid>4009;
update cdb_paymentlog set tid=tid-16773200 where tid>4009;
update cdb_polloptions set tid=tid-16773200 where tid>4009;
update cdb_polls set tid=tid-16773200 where tid>4009;
update cdb_posts set tid=tid-16773200 where tid>4009;
update cdb_relatedthreads set tid=tid-16773200 where tid>4009;
update cdb_rewardlog set tid=tid-16773200 where tid>4009;
update cdb_rsscaches set tid=tid-16773200 where tid>4009;
update cdb_sessions set tid=tid-16773200 where tid>4009;
update cdb_subscriptions set tid=tid-16773200 where tid>4009;
update cdb_threads set tid=tid-16773200 where tid>4009;
update cdb_threadsmod set tid=tid-16773200 where tid>4009;
update cdb_threadtags set tid=tid-16773200 where tid>4009;
update cdb_tradelog set tid=tid-16773200 where tid>4009;
update cdb_trades set tid=tid-16773200 where tid>4009;
update cdb_typeoptionvars set tid=tid-16773200 where tid>4009;
update cdb_videos set tid=tid-16773200 where tid>4009;
update cdb_videotags set tid=tid-16773200 where tid>4009;
如果安装了 supesite 有了推送主题表还加上:
update cdb_pushedthreads set tid=tid-16773200 where tid>4009;
以上 sql 为 6.0 版本
批量替换论坛标题内容
UPDATE `cdb_threads` SET `subject` = replace (`subject`,'需要替换的','替换后的')
UPDATE `cdb_attachments` SET `thumb` = '0'
取消所有附件的缩略图数据
UPDATE `cdb_threads` SET `highlight` = '0'
取消全部帖子的高亮显示
论坛里所有回复长度小于 20 的而且没有附件的贴子全部删除掉
delete from cdb_posts where length(message)<20 and attachment=0
查询 ftp 上的附件是否在数据库内
phpmyadmin 中 执行 sql:
select * from cdb_attachments where attachment like "% 文件名称%"
一次性给一个贴内的所有回帖人加积分
update cdb_members set extcredits2=extcredits2+10 where uid in(SELECT authorid FROM `cdb_posts` WHERE tid=主题 ID)
extcredits2 是需要增加的积分字段 , 使用的时候要注意增加的哪个积分字段
truncate cdb_validating
清空用户审核数据表
UPDATE `cdb_members` SET `oltime` = '0'
所有用户的在线时间修改为 0
把体积大于 819200kb 的附件指定为远程附件
update cdb_attachments set remote = '1' WHERE filesize > 819200
ALTER TABLE `cdb_threads` CHANGE `tid` `tid` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT;