mysql按位的索引判断值是否为1

Posted yuanxiaoping_21cn_com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

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 ;

以上是关于mysql按位的索引判断值是否为1的主要内容,如果未能解决你的问题,请参考以下文章

Mysql判断表字段或索引是不是存在

C语言 10位的整数 按位取出来

php 判断数组里是不是有某个值

MySQL中判断某个字段的值是否为空NULL

MySQL索引分类

mysql 用sql判断表里是不是存在某个字段,不存在加入新字段