關於無限級分類的sql語句操作
還是關於樹的演算法問題。是樹結構就涉及到遞迴的問題。
眾所周知,遞迴是演算法中除圖演算法外最複雜的一種,關鍵是在於思想的理解!
另一方面,遞迴演算法,堆疊呼叫開銷相對來說很大。
最近,發現現在很多專案都涉及到這個,樹型結構資料報表,樹型下拉框,無限級版塊分類等等
在實際開發中也很常見。
下面例子中的childs為nvarchar型,儲存改目分類下的所有分類專案,寫了個函式自動生成
這時,如果想知道某版塊下的所有的帖子(包含子版塊)
exec 'select * from t_board where [email protected] or boardid in (@childids)'
就可以了
returnsnvarchar(100)
asbegindeclare@rnvarchar(100)
set@r=''declare@tmpintdeclare cur cursorforselect boardid from t_board where preid=@bidopen cur
fetchnextfrom cur into@tmpWHILE (@@FETCH_STATUS<>-1)
BEGINset@r=@r+cast(@tmpas
FETCHNEXTFROM cur INTO@tmpENDclose cur
deallocate cur
return (@r)
/*
update t_board set childids=dbo.fn_get_childids(boardid)
update t_board set childids=left(childids,len(childids)-1) where childids <>''
*/end--
returnsnvarchar(100)
asbegindeclare@rnvarchar(100)
set@r=''declare@pidintset@pid=@bidwhile@pid>0beginselect@pid=preid from t_board where boardid=@pid--print @pidif(@pid>0) set@r=@r+cast(@pidasnvarchar) +','endif@r<>''set@r=left(@r,len(@r)-1)
return (@r)
end
相關推薦
關於無限級分類的sql語句操作
還是關於樹的演算法問題。是樹結構就涉及到遞迴的問題。 眾所周知,遞迴是演算法中除圖演算法外最複雜的一種,關鍵是在於思想的理解! 另一方面,遞迴演算法,堆疊呼叫開銷相對來說很大。 最近,發現現在很多專案都涉及到這個,樹型結構資料報表,樹型下拉框,無限級版塊分類等等 在實際開發中
無限級分類之查找子孫樹
return inux ati code arr == merge ade find 1 <?php 2 header("Content-Type:text/html;charset=utf-8"); 3 $cate=array( 4 array(
JAVA中用 SQL語句操作小結
update 數據類型 where條件 ring 行數 實用 英文 delet date 1、添加記錄(INSERT) 使用SQL語句的INSERT命令可以向數據庫中插入記錄,INSERT命令的基本形式為: INSERT INTO 表名 [(字段名1,字段名2…)] VAL
Shell腳本中執行sql語句操作
out ins host source con more char 演示 -1 這篇文章主要介紹了Shell腳本中執行sql語句操作mysql的5種方法,本文講解了將SQL語句直接嵌入到shell腳本文件中、命令行調用單獨的SQL文件、使用管道符調用SQL文件等方法,需
sql 語句操作,修改字段中字符串的一部分
ron str web ebe pda rep 字符 ace replace update 表名 set 字段=replace(字段,‘替換的部分’,‘替換後的字符串’); update 表名 set A=replace( A, ‘海澱‘, ‘朝陽‘) where A li
[收集] 各式各樣的 無限級分類 的數據庫設計方案
where 數據庫 位數 sel 其中 三級 mat sco tiny 第一種方案: 表為兩張,一張分類表,一張信息表。 表1: `ID` int(10), `cID` tinyint(3) , `title` varchar(255), 表2:`cID` tinyint(
MyBatis無限級分類實現的兩種方法--自關聯與map集合
except app exce utf-8 elf findall ldr ati tex 1、這回先創建數據庫吧 下表cid是CategoryId的縮寫,cname是CategoryName的縮寫,pid是parentId的縮寫 無限級分類一般都包含這三個屬性,至少也要包
第八章,用SQL語句操作數據
values 通過 select語句 sql 定義 開頭 更新數據 算數運算 優先級 SQL的組成: (1)DML(Data Manipiation Language ,數據操作語言,)用來插入,修改和刪除數據庫中的數據,如:INSERT,UPDATE,DELETE等。
mysql 無限級分類
ble 包含 each highlight update 名稱 ray 是否 script 兩種思路吧,遞歸 和 非遞歸 遞歸 $arr = [ 1=>[‘id‘=>1,‘pid‘=>0], 2=>[‘id‘=>2,‘pid‘
使用T-SQL語句操作數據表-插入數據
行數 不能 字符 但是 列表 插入 設計 數位 check約束 插入數據(insert)語法:insert [into] <表名> [列名] values <值列表>解釋:insert :是語法名,插入的意思into:是選填的,可以省略。
使用T-SQL語句操作數據表-刪除數據
語句 但是 sql truncate 表格 內容 表名 刪除表格 rom 1.使用 delete 語句刪除表中的數據:語法:delete from <表名> [where <刪除條件>]delete 是刪除的意思 where是選填內容可以
使用T-SQL語句操作數據表-查詢數據
成績表 例子 別名 默認 分數 from having lec ade 查詢(select)的基本格式:select <列名> from <表名> [where <查詢限定條件>]解釋:select 查詢的命令體列名:要查詢
MySQL基礎入門學習【9】無限級分類表設計
父親 連接 參照物 insert gpo 平板電視 生活電器 type mysql 比如: 圖書/小說、文學.../四大名著、戲曲.../... 理論上可以設計很多張表; 但是隨著分類逐步增多,這些表的數目不可能無限擴展; 所以對於無限級分類表一般我們采用如下形式(通過自身
使用T-SQL語句操作視圖
word tail 分享 判斷 from eat student span ref 轉自:使用T-SQL語句操作視圖 提示:只能查看,刪除,創建視圖,不能對數據進行增,刪,改操作。 use StuManageDB go --判斷視圖是否存在 if exists
用SQL語句操作數據
大小寫 存在 dcl 算數運算 變量 UC 函數 creat nio 使用T-SQL插入數據 1.SQL簡介 (1)SQL是什麽 structured Query Language:結構化查詢語句 *不區分
設計一個無限級分類的數據表
互聯 body varchar space 語句 HR creat line pla 設計一個無限級分類的數據表是一個很常見的數據庫任務。比如你寫一個CMS,需要有4,5級分類的欄目,反正就是很普遍,所以還是需要了解一下。下面本專題的所有內容,都是我自己隨手演示寫寫,僅僅供
PHP實現無限級分類
RR set pan src 浙江省 IT bubuko func 無限 function generateTree(){ $items = array( 1 => array(‘id‘ => 1, ‘pid‘
php實現無限級分類的兩種方式
@param HP 獲取 velt 分類 get gets key turn 一、梯式: 代碼: /* @desc:獲取梯式分類 @param data 需要轉換的數據 @param pkey 上級的鍵名 @param key 主鍵名 @param pid 頂級id @p
用SQL語句操作數據------解析
解析 語句 錯誤 表名 標識 組成 nio 分隔 數據 一.SQL 結構化查詢語言 1.T-SQL 和 SQL的關系 T-SQL是SQL的增強版 2.SQL的組成 2.1 DML (數據操作語言) 增加,修改,刪除等數據操作 2.2 DCL (數據控制語言) 存儲許可,存儲
mysql系列詳解二:sql語句操作-技術流ken
option art sql con student redundant cascade 枚舉 創建索引 1.簡介 本篇博客將詳細講解mysql的一些常用sql語句操作,例如創建數據庫,刪除數據庫,創建表,修改表,刪除表,以及簡單查詢案例。 2.關於mysql數據中的S