MySQL日期日值比较及数值间隔函数技术咨询
问题2:MySQL判断数值相等或相差1的通用方法
MySQL没有专门的内置函数干这个,但实现起来超简单,有两种常用方式:
方式1:直接写表达式(推荐,无需额外操作)
直接用绝对值差值判断是否为0或1就行,这个表达式会返回布尔值(1为真,0为假),可以直接用在WHERE条件或CASE语句里:
-- 假设要比较的两个数值是num1和num2 ABS(num1 - num2) IN (0, 1)
方式2:创建自定义函数(适合频繁使用的场景)
如果业务里经常需要做这个判断,可以自己封装一个函数:
DELIMITER // CREATE FUNCTION is_equal_or_diff_one(num1 INT, num2 INT) RETURNS BOOLEAN BEGIN RETURN ABS(num1 - num2) IN (0, 1); END // DELIMITER ;
之后就像用内置函数一样调用:
SELECT is_equal_or_diff_one(5,6); -- 返回1 SELECT is_equal_or_diff_one(5,7); -- 返回0
内容的提问来源于stack exchange,提问作者SS360
相关产品推荐
相关产品推荐

