mysql中無陣列型別,通常將陣列元素按某個字元分割以字串形式儲存
方法:按指定符號分割字串,返回分割後的元素個數。方法很簡單,就是看字串中存在多少個分隔符號,然後再加一,就是要求的結果。
createfunction
get_strarraylength
( @str
varchar(1024), --
要分割的字串
@split
varchar(10) --
分隔符號
) returns
intas
begin
declare
@location
intdeclare
@start
intdeclare
@length
intset
@str
=ltrim(rtrim(@str
)) set
@location
=charindex(@split,@str
) set
@length=1
while
@location
<>
0begin
set@start
=@location+1
set@location
=charindex(@split,@str,@start
) set
@length
=@length+1
endreturn
@length
end
呼叫示例:select get_strarraylength('78,1,2,3',',')
返回值:4
方法:按指定符號分割字串,返回分割後指定索引的第幾個元素(注意索引從1開始),象陣列一樣方便
createfunction
get_strarraystrofindex
( @str
varchar(1024), --
要分割的字串
@split
varchar(10), --
分隔符號
@index
int--
取第幾個元素
) returns
varchar(1024
) as
begin
declare
@location
intdeclare
@start
intdeclare
@next
intdeclare
@seed
intset
@str
=ltrim(rtrim(@str
)) set
@start=1
set@next=1
set@seed
=len(@split
) set
@location
=charindex(@split,@str
) while
@location
<>
0and
@index
>
@next
begin
set@start
=@location
+@seed
set@location
=charindex(@split,@str,@start
) set
@next
=@next+1
endif
@location=0
select
@location
=len(@str)+1--
這兒存在兩種情況:1、字串不存在分隔符號 2、字串中存在分隔符號,跳出while迴圈後,@location為0,那預設為字串後邊有乙個分隔符號。
return
substring(@str,@start,@location
-@start
) end
呼叫示例:select get_strarraystrofindex('8,9,4',',',2)
返回值:9
方法:結合上邊兩個函式,象陣列一樣遍歷字串中的元素
declare@str
varchar(50
) set
@str='
1,2,3,4,5
'declare
@next
intset
@next=1
while
@next
<=get_strarraylength(@str,','
) begin
print get_strarraystrofindex(@str,'
,',@next
) set
@next
=@next+1
end
呼叫結果:
MySQL中的儲存引擎
我們可以認為mysql中建立的庫 資料夾,庫中的表 檔案 資料庫中的表也應該有不同的型別,表的型別不同,會對應mysql不同的訪問機制,表型別又稱為儲存引擎。ps 儲存引擎說白了就是如何儲存資料 如何為儲存的資料建立索引和如何更新 查詢資料等技術的實現方法。因為在關聯式資料庫中資料的儲存是以表的形式...
mysql 中的儲存過程
儲存過程proc adder功能很簡單,兩個整型輸入引數a和b,乙個整型輸出引數sum,功能就是計算輸入引數a和b的結果,賦值給輸出引數sum 幾點說明 delimiter 之前說過了,把預設的輸入的結束符 替換成 definer 建立者 call 呼叫儲存過程,用 call 命令 procedur...
mysql中資料的儲存範圍
1 int 最多儲存10位數字,即 2147683648 到2147683647 4位元組 當儲存的11111111111位數字後,將預設儲存int的最大值 2147683647 當儲存的 11111111111位數字後將預設儲存int的最小值 2147683648 2 char 定長字串 0 25...