mysql5.7或者以上版本的,去重之后排序(降序)的解决方法(参考,不一样适用每一个人)

我看过这边文章的去重排序

https://blog.csdn.net/jiongxian1/article/details/78449232

 

 

=========================2020-4-30更新  mysql8.0解决 group by 字段问题-========

给id添加max,min或者直接用  any_value都行

=========================

在mysql5.5是可以实现的,但是感觉在mysql5.7就没办法实现了.!

 

说带说一下,就是,在mysql5.7如果只是想简单使用group by功能,

还得在  /etc/my.cnf 修改配置(仅限linux系统)

在文件最后面添加

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

实例:

我这里有一份评分历史记录,字段who,就是负责人(发起评分的人),字段setting_time是,评分的开始设定时间,

完整的数据表是这样的.

需求:求这里所有负责人最新的评价设置记录

神奇的办法1:

SQL语句:

select * from (select * from login_estimatehistory order by setting_time DESC limit 0,30) alias group by who;

 

结果:

对了,kuman负责人最新的评分数据就是ID为20的这条,18年6月4日的

其他的负责人也一次显示出来了.

但是我无法解析limit的作用.只知道能用.

解决办法2:(超土方法,但是好理解)---->(先排序,再去重)

 

然后我的解决办法,只能使用临时表来解决求最新数据的排序了

看图

使用临时表去解决

SQL语句:

(排列)

语句1: create temporary table cctv select * from login_estimatehistory order by who,setting_time DESC;

(先把负责人和setting_time作为依据排列)

(去重)

语句2:select * from cctv group by who;

(然后就可以对这些数据分组去重

(删除临时表)

语句3:drop table cctv;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你想要使用正则表达式索引来优化查询时,需要先判断你的正则表达式模式是否固定。如果正则表达式模式是固定的,那么可以使用正则表达式索引来加速查询。下面是一个 MySQL 5.7 版本创建正则表达式索引的示例: 假设我们有一个表 t_user,其中有一个字段 username,我们要对 username 进行正则表达式查询,正则表达式的模式是固定的,可以使用正则表达式索引来优化查询。 首先,我们需要创建一个正则表达式索引: ``` CREATE INDEX idx_username ON t_user(username(255)) USING regex; ``` 在这个语句中,我们使用了 CREATE INDEX 语句来创建一个名为 idx_username 的正则表达式索引,它对 t_user 表的 username 字段进行正则表达式匹配,并将匹配结果存储在索引中。使用 USING regex 关键字来指定这是一个正则表达式索引。 需要注意的是,由于正则表达式匹配的结果可能很长,因此我们还需要指定索引的长度。在这个例子中,我们将索引长度设置为 255。 创建完正则表达式索引之后,就可以在查询时使用它了。例如,要查询 username 包含 "abc" 的所有记录,可以使用如下的 SQL 语句: ``` SELECT * FROM t_user WHERE username REGEXP 'abc'; ``` 这个查询将会使用正则表达式索引,从而加速查询效率。 需要注意的是,正则表达式索引只适用于固定的正则表达式模式,如果正则表达式模式是动态的,那么无法使用正则表达式索引来优化查询效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值