mysql按位的索引判斷值是否爲1

DELIMITER $$索引

DROP FUNCTION IF EXISTS `value_of_bit_index_is_true`$$
/*計算某個數字的某些索引的位的值是否都爲1,索引相似1,2,3,4*/
CREATE FUNCTION `value_of_bit_index_is_true`(`number` INT, `idxies` VARCHAR(50)) RETURNS INT(11)
BEGIN
/*將1,2,3,4,5,6這樣的字符串轉換位表*/
SET @result = 1;字符串

SET @i = LENGTH(`idxies`) - LENGTH(REPLACE(`idxies`,',','')); -- 算出分隔符的總數
SET @left_str = `idxies`;
WHILE @i>0 -- 有多少個分隔符就循環多少遍
DO
SET @sub_str = SUBSTR(@left_str,1,INSTR(@left_str,',')-1); -- 獲得分隔符前面的字符串
SET @left_str = SUBSTR(@left_str,LENGTH(@sub_str)+LENGTH(',')+1); -- 獲得分隔符後面的字符串
SET @n = TRIM(@sub_str);
SET @r=`value_of_bit_index`(`number`, @n);
IF @r = 0 THEN
SET @result = 0;
END IF;it

SET @i = @i - 1;
END WHILE;
SET @n = TRIM(@left_str);
SET @r=`value_of_bit_index`(`number`, @n);
IF @r = 0 THEN
SET @result = 0;
END IF;

RETURN @result;
END$$循環

DELIMITER ;字符

相關文章
相關標籤/搜索