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

2023-12-07 0 269
目录
  • MYSQl根据分组获取组内多条数据中符合条件的一条
    • 代码释义
  • 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分组获取组内多条数据内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 Mysql MYSQL根据分组获取组内多条数据中符合条件的一条(实例详解) https://www.u-9.cn/database/mysql/121458.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务