注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红尘若梦

生活的色彩

 
 
 

日志

 
 

Mysql判断奇偶数的问题  

2016-05-31 12:15:28|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在很多项目里面,都会有需求,要判断某数为奇偶数的问题。当然,这个可以用程序语言来整除得出余数是不是1就可以判断,或者使用Mysql的函数MOD。相关代码如下:

#如果结果是0代表是偶数,如果结果是1代表是奇数

select MOD(593668,2); #结果为0,代表偶数

select MOD(593669,2); #结果为1,代表奇数

但其实,还有其它办法可以处理。比如下面其实也是可以判断的,原理就是让字段跟1与一下,如果得到的结果是1,就表明是奇数,除此之外就是偶数。

select 593668&1; #结果为0,代表偶数
select 593669&1; #结果为1,代表奇数

当然还可以更进一点,就将这个数右移一位,再左移一位,判断是否跟原来的数是否相等来做判断。

select 593668=(593668>>1)<<1; #结果为1,代表偶数
select 593669=(593669>>1)<<1; #结果为0,代表奇数

更深入一点,想判断某个位的数字是奇偶数,那么就利用substring先截取再来判断。比如:

select substring(593668,4,1)&1; #结果为0,代表偶数
select substring(593668,1,1)&1; #结果为1,代表奇数

至于如果是数值问题,那么也可以先用conv 函数转换进制再来判断。

select substring(conv(593668,10,16),3,1)&1;#结果为0,代表偶数
select substring(conv(593668,10,16),1,1)&1;#结果为1,代表奇数

这样的话,无论是什么进制,也无论是判断那个位数上的数字奇偶性,相信大家都不会再有困难。




  评论这张
 
阅读(42)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017