MYSQL根据分组获取组内多条数据中符合条件的一条(实例详解)

 更新时间:2023年06月30日 08:54:04   作者:阿布@  
这篇文章主要介绍了MYSQL根据分组获取组内多条数据中符合条件的一条,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

MYSQl根据分组获取组内多条数据中符合条件的一条

//TP6写法
        $aids = Db::name('answer')->whereIn('qid', $qids)->group('qid')->column("SUBSTRING_INDEX(group_concat(id ORDER BY top desc, sort asc, pinglun desc, zan desc, id desc),',',1) as aid");
        $aids = array_column($aids, 'aid');
        $qid_answer = Db::name('answer')->whereIn('id', $aids)->column("id,qid,title", 'qid');

代码释义

answer 表中存在 qid的一对多条数据,我需要取q表的分页数据,然后每一条q数据对应返回置顶/排序/最新的一条a数据;group_concat函数根据qid分组和排序,取出排序的aid逗号拼接的字符串;SUBSTRING_INDEX函数取出aid字符串的第一个,就是我们要的值。

mysql多条件批量查询与分组获取每组最新得一条数据

MySql:

SEECT
            d.DETAIL_ID,
            d.WARE_ID,
            d.WARE_NAME,
            d.`STATUS`,
            d.material_id,
            d.material_info,
            d.conversion_rate,
                        m.assign_purorg_id
        FROM
            `order_detail` d
                LEFT JOIN mall_order m ON d.ORDER_ID = m.ORDER_ID
        WHERE
            (d.WARE_ID,m.assign_purorg_id) in(('1','1910260249874688'),('54','1910264272376064'),('54','1910260249874688'))
            AND d.dr =0
            and m.dr= 0
          AND d.`STATUS` NOT IN (
                                 "SAVED",
                                 "COMMITEN",
                                 "REJECTED"
            )

Mapper:

到此这篇关于MYSQL根据分组获取组内多条数据中符合条件的一条的文章就介绍到这了,更多相关mysql分组获取组内多条数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL 主从复制原理与实践详解

    MySQL 主从复制原理与实践详解

    这篇文章主要介绍了MySQL 主从复制原理与实践,结合实例形式分析了MySQL 主从复制基本概念、原理、实现方法与相关注意事项,需要的朋友可以参考下
    2020-05-05
  • 与MSSQL对比学习MYSQL的心得(七)--查询

    与MSSQL对比学习MYSQL的心得(七)--查询

    在这个《与MSSQL对比学习MYSQL的心得》系列里面,我一直都把MYSQL跟SQLSERVER进行比较,相互进行比较是学习一样东西比较好的方法
    2014-08-08
  • 浅谈MySql 视图、触发器以及存储过程

    浅谈MySql 视图、触发器以及存储过程

    这篇文章主要介绍了MySql 视图、触发器以及存储过程的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • MySQL忘记root密码的两种解决方案

    MySQL忘记root密码的两种解决方案

    在使用MySQL数据库管理系统时,有时候会碰到忘记了root用户的密码的情况,这时候就需要找到一种解决方案来重置或者恢复root密码,本文将介绍两种常用的方法来解决这个问题,需要的朋友可以参考下
    2024-09-09
  • 为什么MySQL 使用timestamp可以无视时区问题.

    为什么MySQL 使用timestamp可以无视时区问题.

    这篇文章主要介绍了为什么MySQL timestamp可以无视时区问题,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-12-12
  • MySQL数据库SELECT查询表达式解析

    MySQL数据库SELECT查询表达式解析

    这篇文章主要介绍了MySQL数据库SELECT查询表达式解析,文中给大家介绍了select_expr 查询表达式书写方法,需要的朋友可以参考下
    2018-04-04
  • MySQL中UPDATE与DELETE语句的使用教程

    MySQL中UPDATE与DELETE语句的使用教程

    这篇文章主要介绍了MySQL中UPDATE与DELETE语句的使用教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-12-12
  • linux CentOS6.5 yum安装mysql5.6

    linux CentOS6.5 yum安装mysql5.6

    这篇文章主要为大家详细介绍了linux CentOS6.5 yum安装mysql5.6的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • mysql启动时出现ERROR 2003 (HY000)问题的解决方法

    mysql启动时出现ERROR 2003 (HY000)问题的解决方法

    这篇文章主要为大家详细介绍了mysql启动时出现ERROR 2003 (HY000问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • MySQL索引详细解析

    MySQL索引详细解析

    索引是有双面性的,合理的建立索引可以提高数据库的效率。但是如果没有合理的构建索引和使用索引,可能会导致索引失效或者影响数据库性能,这篇文章主要介绍了MySql索引原理与操作
    2022-10-10

最新评论