欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:數(shù)據(jù)庫 mysql中find

柚子快報激活碼778899分享:數(shù)據(jù)庫 mysql中find

http://yzkb.51969.com/

一、find_in_set()

我們知道m(xù)ysql提供了一個好用的函數(shù)

FIND_IN_SET(str,strlist),

該函數(shù)的作用是查詢字段(strlist)中是否包含(str)的結(jié)果, 返回結(jié)果為null或記錄 。

str 要查詢的字符串 strlist 需查詢的字段,參數(shù)以”,”分隔,例如如 '1,2,3'。

下面有一組示例

select FIND_IN_SET('1', '1,2,3'); // 結(jié)果:1 select FIND_IN_SET('3', '1,2,3'); // 結(jié)果:3 select FIND_IN_SET('4', '1,2,3'); // 結(jié)果:0 // 后一個包含前一個返回大于0的元素所在位置,不包含前一個則返回0 ?

我們一般在查詢的where條件使用?FIND_IN_SET(str,strlist)>0,則說明strlist包含str

但是這個函數(shù)的第一個參數(shù)只能判斷是單個字符串,如果我有以下需求

1. 判斷字符串 '1,3' 中的元素是否有任意一個元素存在字符串 '1,3,4,5,7',意思就是1或者3只要有任意一個存在字符串?'1,3,4,5,7' 中就算匹配成功。

2. 再比如判斷字符串 '1,3,5' 中的所有元素是否都存在于字符串 '1,3,4,5,7' 中,即1,3,5每個元素都要在 字符串 '1,3,4,5,7'中能找到才算匹配成功。

針對需求1,提供了一個叫 FIND_PART_IN_SET??的函數(shù)

針對需求2,提供了一個叫 FIND_ALL_PART_IN_SET 的函數(shù)

二、FIND_PART_IN_SET

CREATE FUNCTION `FIND_PART_IN_SET`(str1 text, str2 text)

RETURNS text

BEGIN

#傳入兩個逗號分割的字符串,判斷第二個字符串是否包含第一個字符串split之后的單個

DECLARE CURRENTINDEX INT;#當(dāng)前下標(biāo)

DECLARE CURRENTSTR text;

DECLARE result int;

set result = 0;

set CURRENTINDEX = 0;

set CURRENTSTR = '';

IF str1 IS NOT NULL AND str1 != '' THEN

SET CURRENTINDEX = LOCATE(',', str1);

WHILE CURRENTINDEX > 0

DO

SET CURRENTSTR = substring(str1, 1, CURRENTINDEX - 1);

if FIND_IN_SET(CURRENTSTR, str2)>0 THEN

set result = 1;

end if;

SET str1 = substring(str1, CURRENTINDEX + 1);

SET CURRENTINDEX = LOCATE(',', str1);

END WHILE;

#只傳一個 和 最后無逗號的情況

IF LENGTH(str1) > 0 THEN

if FIND_IN_SET(str1, str2)>0 THEN

set result = 1;

end if;

END IF;

END IF;

RETURN result;

END;

實際調(diào)用判斷FIND_PART_IN_SET(str1 ,str2)>0即可,例如FIND_PART_IN_SET('1,3' , '1,3,4,5')>0

三、FIND_ALL_PART_IN_SET

CREATE FUNCTION `FIND_ALL_PART_IN_SET`(str1 text, str2 text)

RETURNS text

BEGIN

#傳入兩個逗號分割的字符串,判斷第二個字符串是否全部包含第一個字符串split之后的單個

DECLARE CURRENTINDEX INT;#當(dāng)前下標(biāo)

DECLARE CURRENTSTR text;

DECLARE RESULT int;

DECLARE TOTALCOUNT int;

DECLARE TRUECOUNT int;

set RESULT = 0;

set CURRENTINDEX = 0;

set CURRENTSTR = '';

set TOTALCOUNT = 0;

set TRUECOUNT = 0;

IF str1 IS NOT NULL AND str1 != '' THEN

SET CURRENTINDEX = LOCATE(',', str1);

WHILE CURRENTINDEX > 0

DO

SET TOTALCOUNT = TOTALCOUNT + 1;

SET CURRENTSTR = substring(str1, 1, CURRENTINDEX - 1);

if FIND_IN_SET(CURRENTSTR, str2)>0 THEN

SET TRUECOUNT = TRUECOUNT + 1;

end if;

SET str1 = substring(str1, CURRENTINDEX + 1);

SET CURRENTINDEX = LOCATE(',', str1);

END WHILE;

#只傳一個 和 最后無逗號的情況

IF LENGTH(str1) > 0 THEN

SET TOTALCOUNT = TOTALCOUNT + 1;

if FIND_IN_SET(str1, str2)>0 THEN

SET TRUECOUNT = TRUECOUNT + 1;

end if;

END IF;

END IF;

IF TOTALCOUNT > 0 AND TRUECOUNT = TOTALCOUNT THEN

SET RESULT = 1;

END IF;

RETURN result;

END;

實際調(diào)用判斷FIND_ALL_PART_IN_SET(str1 ,str2)>0即可,例如FIND_PART_IN_SET('1,3,5' , '1,3,4,5,7')>0?

柚子快報激活碼778899分享:數(shù)據(jù)庫 mysql中find

http://yzkb.51969.com/

精彩鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19046623.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄