当前位置:首页 > 行业动态 > 正文

如何高效利用SQL语句在Dedecms中进行数据调用?

Dedecms中常用数据调用的SQL语句包括:,,1. 获取文章列表:,“ sql,SELECT * FROM dede_archives WHERE channel = 频道ID ORDER BY pubdate DESC,` ,,2. 获取文章详情:,` sql,SELECT * FROM dede_archives WHERE id = 文章ID,` ,,3. 获取栏目列表:,` sql,SELECT * FROM dede_channel WHERE parentid = 0,` ,,4. 获取子栏目列表:,` sql,SELECT * FROM dede_channel WHERE parentid = 父栏目ID,` ,,5. 获取标签列表:,` sql,SELECT * FROM dede_taglist,` ,,6. 获取指定标签的文章列表:,` sql,SELECT * FROM dede_archives WHERE tag = '标签名称',“

在Dedecms(织梦内容管理系统)中,SQL语句是用于从数据库中调用和修改数据的重要工具,以下是一些常用的Dedecms SQL语句汇总:

如何高效利用SQL语句在Dedecms中进行数据调用?  第1张

功能型SQL语句

1、添加自定义属性

INSERT INTO dede_arcatt (sortid, att, attname) VALUES (9, 'd', '评论');

ALTER TABLE dede_archives MODIFY flag SET ('c','h','p','f','s','j','a','b','d') DEFAULT NULL;

2、批量为作者和来源赋值

UPDATE dede_archives SET writer='要赋的值' WHERE writer='';

UPDATE dede_archives SET source='要赋的值' WHERE source='';

3、删除指定IP的评论

DELETE FROM dede_feedback WHERE dede_feedback.ip = '000.000.000.000';

4、清空文章中关键字字段

UPDATE dede_archives SET keywords='';

5、批量替换发布时间、入库时间、更新时间

第一步:在后台新增一个文章,得到一个时间戳,比如20090113 14:13:32。

第二步:执行以下SQL语句进行替换。

UPDATE dede_archives SET sortrank = 1231846313;

UPDATE dede_archives SET senddate = 1231846313;

UPDATE dede_archives SET pubdate = 1231846313;

6、批量修改栏目为动态或者静态

UPDATE dede_arctype SET isdefault = '1'; // 动态

UPDATE dede_arctype SET isdefault = '1'; // 静态

7、批量替换

UPDATE dede_addonarticle SET body=REPLACE(body, '论坛', '社区') WHERE body LIKE "%论坛%";

数据调用型SQL语句

1、统计代码

   SELECT count(*) as c FROM dede_archives WHERE channel=1; // 共有文章数
   SELECT count(*) as c FROM dede_archives WHERE channel=2; // 共有图集数
   SELECT count(*) as c FROM dede_archives WHERE channel=3; // 共有软件数
   SELECT count(*) as c FROM dede_feedback; // 共有评论数
   SELECT count(mid) as c FROM dede_member ; // 共有会员数
   SELECT sum(click) as c FROM dede_archives; // 文章阅读人次
   SELECT count(*) as c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP(CURDATE()); // 今日更新文章数

2、调用特定会员发布的文章内容

   SELECT * FROM dede_archives WHERE mid=1;

3、调用Discuz论坛附件带图片的帖子

   SELECT cdb_p_w_uploads.aid, cdb_p_w_uploads.p_w_upload, cdb_threads.tid, cdb_threads.fid, cdb_threads.subject 
   FROM cdb_p_w_uploads 
   LEFT JOIN cdb_threads ON cdb_threads.tid = cdb_p_w_uploads.tid 
   WHERE cdb_p_w_uploads.readperm = '0' AND displayorder >= '0' AND filetype = 'p_w_picpath/pjpeg' GROUP BY tid LIMIT 0,2;

4、调用UCHOME最新日志

   SELECT subject, viewnum, blogid, uid 
   FROM uchome_blog 
   ORDER BY blogid DESC 
   LIMIT 0,8;

5、会员积分排行

   SELECT mid, userid, uname, scores 
   FROM dede_member 
   ORDER BY scores DESC 
   LIMIT 0,10;

6、企业最新产品调用方法(图片+标题)

   SELECT a.id, a.litpic, a.title 
   FROM dede_addonshop p 
   LEFT JOIN dede_archives a ON a.id = p.aid 
   ORDER BY a.id DESC 
   LIMIT 0,4;

7、调用最新加入企业及企业所属行业代码到首页

   SELECT m.mid, m.mtype, m.userid, m.matt, c.mid, c.company, c.comface, d.ename, d.evalue, d.egroup 
   FROM dede_sys_enum AS d, dede_member AS m 
   LEFT JOIN dede_member_company AS c ON c.mid = m.mid 
   WHERE m.mtype ='企业' AND m.matt = 1 AND c.vocation = d.evalue AND d.egroup ='vocation' 
   LIMIT 0,10;

8、推荐会员(带用户头像)

   SELECT u.username, u.userid, u.uface 
   FROM dede_member AS u 
   LEFT JOIN dede_space AS e ON e.spacemod='avatar' AND e.itemid=u.userid 
   WHERE u.spacemod='avatar' AND e.itemid=u.userid 
   ORDER BY RAND() 
   LIMIT 0,10;

FAQs(相关问题解答)

1、如何备份数据库?

答:在进行任何SQL操作之前,务必先备份数据库,可以通过phpMyAdmin等工具导出数据库文件,或者使用命令行工具mysqldump进行备份。

   mysqldump u [username] p[password] [database_name] > backup.sql

2、如何恢复数据库?

答:如果需要恢复数据库,可以使用mysql命令导入备份文件。

   mysql u [username] p[password] [database_name] < backup.sql

通过以上SQL语句,你可以更加高效地管理和调用DedeCMS系统中的数据,确保在操作前做好数据备份,以免因误操作导致数据丢失。

0