可以从一组有限的数据类型中为用户变量分配值:整数,十进制,浮点,二进制或非二进制字符串或NULL值。
如您所见,不支持用户变量BIT
数据类型。对?好的,我有这个代码:
BEGIN
SELECT active INTO @active FROM users WHERE id = new.user_id;
IF (IFNULL((@active & b'100' > 0), 0) < 1) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "You cannot vote";
END IF;
END
注意: active
列为BIT(10)
。
你知道,我的代码令人惊讶地工作了......为什么?我的意思是MySQL如何将@active
变量视为BIT
数据类型?