首页 > 数据库技术 > 详细

mysql高级

时间:2019-12-04 13:50:21      阅读:65      评论:0      收藏:0      [点我收藏+]

1.UNSIGNED无符号类型  ZEROFILL用0填充以满足数据长度。

2.bit_count(data):data的二进制数包含1的个数;mysql> select bit_count(3);结果为2

   bit_or():    按位或运算
   bit_and():按位与运算

  例如:

CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,
             day INT(2) UNSIGNED ZEROFILL);
INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),
            (2000,2,23),(2000,2,23);

求上表中:每月的访问量?

SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1
       GROUP BY year,month;|

由于1<<day 如果day数据相同,那么运算后的结果是一样的。bit_or运算后对应位1和1或运算结果还是1.这样就达到了去重的效果。

3.用于某个字段组间最大值的行:

SELECT article, dealer, price
FROM   shop s1
WHERE  price=(SELECT MAX(s2.price)
              FROM shop s2
              WHERE s1.article = s2.article);

  或者
   SELECT article,dealer,price from shop 
    where price in (select max(s2.price) from shop s2 group by article);
4.

 

 

 

mysql高级

原文:https://www.cnblogs.com/chengxuyuan-liu/p/11981474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!