find_in_set(string,stringlist)
其中:str要查詢的字串strlist欄位名 引數以」,」分隔 如 (1,3,5)
例:
這是表的設計,此時我們要得到某id下面的乙個無限級的集合
此時我們先定義乙個獲取對應id集合的函式
create function `getchildlist`(rootid int) returns varchar
(1000
) charset utf8mb4
begin
declare stemp varchar
(1000);
declare stempchd varchar
(1000);
set stemp =
'$';
set stempchd =
cast
(rootid as char);
while stempchd is not null do
set stemp =
concat
(stemp,
',',stempchd)
; select group_concat
(pid,stempchd)
>0;
end while;
return stemp;
end
關鍵字段解讀
cast(欄位名 as 轉換的型別 )
此函式的作用是指定型別字段型別的轉變
group_concat(欄位名)
此函式的作用是返回指定欄位的集合並且以逗號隔開
concat(str1,str2,…)
此函式的作用是將多個函式的值進行拼接
sql關鍵
select group_concat
(pid,stempchd)
>
0;
解讀:
整體:
將得到的集合存入stemp並且繼續遞迴,直到pid中不再含有stempchd值時,退出迴圈
由於該函式返回的字串,所以我們需要字串中的id拿出來查詢出實際的記錄
函式運用:
(id,getchildlist (1)
)以上便是我對函式的一些自我見解。
MySQL函式篇 一)
一 字元函式 顧名思義就是對字元進行一系列操作的函式 函式名稱 描述concat 字元連線 concat ws 使用指定的分隔符進行字元連線 format 數字格式化 lower 轉換成小寫字母 upper 轉換成大寫字母 left 獲取左側字元,可以指定你要獲取的位數 right 獲取右側字元,可...
MySQL使用 內建函式篇
一.字串類 charset str 返回字串字符集 concat string2 連線字串 instr string substring 返回substring首次在string中出現的位置,不存在返回0 lcase string2 轉換成小寫 left string2 length 從string...
mysql基礎篇(一)
1 insert 的用法 insert into tablename value 2 change和modify都可以修改表定義,不同的是change後面必須寫兩次列名,但是change的優點是可以修改列名稱,modify不能 3 表型別 儲存引擎 myisam 預設儲存引擎,這種儲存對於訪問的快,...