当前位置: 首页 > news >正文

编写SQL语句,场景:从一张表中查询某字段是逗号分隔的集合值,需要遍历集合内每个值,将其作为条件去查询另一张表,最终返回列表

目录

  • 场景
  • 编写SQL
    • 分页获取该开票单号下的所有订单列表
      • 使用子查询和 `in` 字句
        • 使用 `find_in_set`

场景

从一张表中查询某字段是逗号分隔的集合值,需要遍历集合内每个值,将其作为条件去查询另一张表,最终返回列表

编写SQL

分页获取该开票单号下的所有订单列表

使用子查询和 in 字句

-- 优点:如果数据库有合适的索引,在大数据集中更高效
-- 缺点:需要执行两次查询,首先是子查询,然后是主查询
select 订单ID,道具名称,充值时间,充值金额
from 订单信息表
where 订单ID in (select 订单ids from 发票信息表where 发票流水号 = ?limit 1
)
order by 订单创建时间 desc
offset ? limit ?
使用 find_in_set
-- 优点:一次查询中完成
-- 缺点:在某些数据库系统中可能不是很高效,尤其是在大表中
select b.订单ID,b.道具名称,b.充值时间,b.充值金额
from (select 订单idsfrom 发票信息表where 发票流水号 = ?limit 1
) as a
left join 订单信息表 as b on find_in_set(b.订单ID, a.订单ids) > 0;
http://www.lryc.cn/news/240244.html

相关文章:

  • 单链表相关面试题--7.链表的回文结构
  • JUC(Java Util Concurrent)多线程并发库
  • 如何在Linux系统上检测GPU显存和使用情况?
  • Django 入门学习总结5
  • FileNotFoundError: [Errno 2] No such file or directory: ‘patchelf‘: ‘patchelf‘
  • 『new Date 在 IOS 失效 の bug』
  • macos创建xcframework及签名
  • Oracle与Redis Enterprise协同,作为企业缓存解决方案
  • 局部保持投影(Locality preserving projections,LPP)
  • Flutter:引领移动开发新潮流,跨平台应用程序的终极解决方案
  • 开源免费的流程设计器如何选型
  • 设置pdb自动启动
  • 抖店入驻成功后,新手需要怎么做?7天起店流程教会你!
  • RTS 客户端-服务器网络
  • python连接数据库的方式
  • 【腾讯云云上实验室-向量数据库】探索腾讯云向量数据库:全方位管理与高效利用多维向量数据的引领者
  • 二、sql手工注入
  • day61 layui和分页原理
  • Rust开发——变量、静态变量与常量
  • javascript Math相关计算取值属性方法
  • git reset hard,mixed,soft
  • Cookie与Session知识
  • Vue批量全局处理undefined和null转为““ 空字符串
  • 【2023年APMCM亚太杯C题】完整数据与解题思路
  • 嵌入式单片机方向和Linux驱动开发方向哪个发展前景好?
  • 如何搭建Zblog网站并通过内网穿透将个人博客发布到公网
  • 2:kotlin集合(Collections)
  • 小诺2.0开源版工程启动
  • idea手动导入maven包
  • 2、单片机及开发板介绍