在DedeCMS V5.7系统中,SQL语句的应用非常广泛,例如批量修改内容、数据调用等。系统模板中有一个专门用于调用数据的模板标签 {dede:sql/},可以通过参考帮助中心的模板标签说明来学习如何使用这个标签。

当然,在使用和学习SQL语句之前,需要对Dedecms CMS的数据库结构有一个大致了解。这可以通过帮助中心的数据库说明来实现。

以下为引用的内容:

标签名称:sql
功能说明:用于从模板中用一个SQL查询获得其返回内容
适用范围:全局使用
基本语法:

{dede:sql sql=""}
底层模板
{/dede:sql}
    
参数说明:
sql="" 完整的SQL查询语句
底层模板字段:SQL语句中查出的所有字段都可以用 [field:字段名/] 来调用

应用实例:
调用某个特定会员发布的文章内容:

{dede:sql sql='Select * from dede_archives where mid=1'} 
[field:title/] 
{/dede:sql}
    
mid为用户ID,可以参考二次开发中关于dede_archives的数据表字段介绍。
接下来整理了一些常用的SQL语句,帮助更好地使用DedeCMS系统。
我们将SQL语句分为两类,功能型和内容调用型。功能型主要对数据库进行常规操作(如 insert、update),数据调用型则执行 (select) 操作。功能型SQL语句可在系统后台 [系统]-[SQL命令运行工具] 中使用,而模板标签的数据调用类型只需在模板相应位置添加标签即可。

功能型SQL语句整理:
功能说明:添加自定义属性
相关语句:

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;
    
功能说明:批量为作者和来源赋值
相关语句:

UPDATE dede_archives SET writer='要赋的值' WHERE writer=''; 
UPDATE dede_archives SET source='要赋的值' WHERE source='';
    
功能说明:删除指定IP的评论
相关语句:

DELETE FROM `dede_feedback` WHERE `dede_feedback`.`ip` = '000.000.000.000'
    
功能说明:清空文章中关键字字段
相关语句:

update dede_archives set keywords=''
    
功能说明:批量修改栏目为动态或者静态
相关语句:

UPDATE `dede_arctype` SET `isdefault` = '-1' 动态 
UPDATE `dede_arctype` SET `isdefault` = '1' 静态
    
功能说明:文章内容批量替换SQL语句
相关语句:

update `dede_addonarticle` set body=REPLACE(body,'论坛','社区') where body like "%论坛%"
    
以上SQL语句作用是查找所有文章带有“论坛”的词组,并将论坛替换为“社区”。

各类数据调用SQL语句整理:
标签说明:常用内容统计代码
相关标签:
共有文章:** 篇

{dede:sql sql="select count(*) as c from dede_archives where channel=1"} 
共有文章:[field:c /]篇 
{/dede:sql}
    
共有图集:** 个

{dede:sql sql="select count(*) as c from dede_archives where channel=2"} 
共有图集:[field:c /]个 
{/dede:sql}
    
共有软件:** 个

{dede:sql sql="select count(*) as c from dede_archives where channel=3"}
共有软件:[field:c /]个 
{/dede:sql}
    
共有评论:**条

{dede:sql sql="select count(*) as c from dede_feedback"}
共有评论:[field:c /]条 
{/dede:sql}
    
共有会员:**名

{dede:sql sql="select count(mid) as c from dede_member "}
共有会员:[field:c /]名 
{/dede:sql}
    
文章阅读:** 人次

{dede:sql sql="select sum(click) as c from dede_archives"} 
文章阅读:[field:c /]人次 
{/dede:sql}
    
今日更新:**篇

{dede:sql sql="SELECT count( * ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) "} 
今日更新:[field:c /]篇 
{/dede:sql}
    
总共留言:

{dede:sql sql="select count(*) as cc From dede_guestbook"} 
[field:cc/] 
{/dede:sql}条