求sql语句

猪头小哥 2012-12-12 03:23:57
查找id的二进制中第某位(从右侧数)是0的用户数量 id是十进制整数。
...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪头小哥 2012-12-14
  • 打赏
  • 举报
回复
引用 5 楼 mysdzlt2007 的回复:
SQL code?1WHERE SUBSTR(CONV(123,10,2),5,1)='0'
后来老大说这个方法效率不高 如果数据很多的话就不行。我后来就想到了& 好比是右边第五位为0的:
where id & 12 = 0
这样应该会很快的吧bin(12) = 0001 0000
mysdzlt2007 2012-12-12
  • 打赏
  • 举报
回复
WHERE SUBSTR(CONV(123,10,2),5,1)='0'
猪头小哥 2012-12-12
  • 打赏
  • 举报
回复
嗯嗯 明白了,我刚才是在下面的网站上找到的,也分享下吧: http://www.smallsql.de/doc/index.html
lxq19851204 2012-12-12
  • 打赏
  • 举报
回复
1,怎么把十进制转为2进制。 2,查找位置。 http://www.1861web.com/website-design-03/html/technology/webtechnology/PHP/20100104/07799279.html 上面这个网站是MYSQL的函数。 学完了这个,基本上字符处理就没问题了。
猪头小哥 2012-12-12
  • 打赏
  • 举报
回复
引用 1 楼 wwwwb 的回复:
举例说明 示例: SELECT CONV(101,10,2),LEFT(RIGHT(CONV(101,10,2),5),1) 假设第5位为0 select count(*) from tt where LEFT(RIGHT(CONV(id,10,2),5),1)=0
请问下,这个sql语句是在哪知道的?我想把它弄明白,不只是要个结果,谢谢!
wwwwb 2012-12-12
  • 打赏
  • 举报
回复
举例说明 示例: SELECT CONV(101,10,2),LEFT(RIGHT(CONV(101,10,2),5),1) 假设第5位为0 select count(*) from tt where LEFT(RIGHT(CONV(id,10,2),5),1)=0

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧