MySQL中陣列的儲存

2022-04-04 14:28:29 字數 2493 閱讀 3331

mysql中無陣列型別,通常將陣列元素按某個字元分割以字串形式儲存

方法:按指定符號分割字串,返回分割後的元素個數。方法很簡單,就是看字串中存在多少個分隔符號,然後再加一,就是要求的結果。

create

function

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開始),象陣列一樣方便

create

function

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...