首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

DedeCMS SQL 標籤實戰應用:從功能型操作到內容調用的完整指南

     編輯:關於SqlServer

DedeCMS V5.3 內建 {dede:sql} 標籤,讓模板直接執行 SQL 查詢並輸出結果。善用此功能可大幅減少二次開發工作量。

標籤語法

{dede:sql sql="完整 SQL 查詢語句"}
    底層模板:[field:欄位名/]
{/dede:sql}

所有查詢欄位均可用 [field:欄位名/] 呼叫。

應用分類

一、功能型 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 `ip` = '0.0.0.0';
清空關鍵字欄位UPDATE dede_archives SET keywords='';
批量替換發布/入庫/更新時間先新增一筆文章取得時間戳,再 UPDATE dede_archives SET pubdate=時間戳, senddate=時間戳, sortrank=時間戳;
批量修改欄目動態/靜態UPDATE `dede_arctype` SET `isdefault` = '-1'; -- 動態 / = '1' -- 靜態
文章內容批量替換UPDATE `dede_addonarticle` SET body=REPLACE(body,'論壇','社區') WHERE body LIKE '%論壇%';

二、內容調用型 SQL(模板中使用)

調用目標標籤範例
統計:文章/圖集/軟體/評論/會員/閱讀/今日更新/留言{dede:sql sql="SELECT COUNT(*) AS c FROM dede_archives WHERE channel=1"}文章:[field:c/]篇{/dede:sql} 等
Discuz 論壇帶圖附件貼文聯結 cdb_p_w_uploads + cdb_threads,篩選圖片類型,LIMIT 0,2
UCHOME 最新日誌SELECT subject,viewnum,blogid,uid FROM uchome_blog ORDER BY blogid DESC LIMIT 0,8
會員積分排行SELECT mid,userid,uname,scores FROM dede_member ORDER BY scores DESC LIMIT 0,10
企業最新產品(圖+標題)聯結 dede_addonshop + dede_archives,LIMIT 0,4
最新企業+行業代碼多表聯結 dede_sys_enum、dede_member、dede_member_company
推薦會員/企業(含頭像)判斷頭像為空時顯示預設圖:[field:face runphp='yes'] if(!@me) @me='/預設圖.gif'; [/field:face]
UCenter Home 會員(帶頭像)查詢 uchome_space,組合 avatar.php 網址

實戰提醒

  • 功能型 SQL 僅在後台工具執行,務必先備份資料庫。
  • 調用型 SQL 盡量加 LIMIT 避免效能問題。
  • 涉及跨資料庫/跨系統表(Discuz、UCHOME)需確認表前綴與欄位名稱。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved