老师好,一个官方文档的问题请教

来源:6-5 使用Where子句过滤表中的行

ljk卷心菜

2020-02-04

老师好,今天从官方文档上看到一个示例如下:

CREATE TABLE t1 (year YEAR, month INT UNSIGNED,
             day INT UNSIGNED);
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;

文档说下面这个表达式可以过滤重复的“day”字段

BIT_COUNT(BIT_OR(1<<day))

能请您给解释一下这个为什么可以去重吗?尤其是左移一位这个操作想了半天也不懂什么意思。。。

写回答

1回答

sqlercn

2020-02-04

这个说起来比较不太好描述,网上已经有很多文章来讨论了,你可以看一下下面的文章

https://blog.csdn.net/koli6678/article/details/79841153

0
1
ljk卷心菜
谢谢老师,明白了,之前糊涂了,应该是把1左移“天”位
2020-02-05
共1条回复

零基础入门 详解企业主流数据库MySQL8.0

掌握SQL优化与慢查询优化,具备独当一面的能力

1641 学习 · 485 问题

查看课程