You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite查询:统计每位成员参与编辑的订单数量

SQLite关联统计逗号分隔权限字段对应的订单数方案

核心匹配逻辑要规避ID部分匹配的问题:比如member_id为2不能误匹配到member_ids中的12、23这类值,我们通过给匹配字符串两侧补逗号的方式实现精确匹配。

可用查询语句

SELECT 
  m.member_id,
  m.name,
  COUNT(o.order_id) AS order_count
FROM tbl_members m
LEFT JOIN tbl_orders o 
  ON ',' || o.member_ids || ',' LIKE '%,' || CAST(m.member_id AS TEXT) || ',%'
GROUP BY m.member_id, m.name;

逻辑说明

  • 用LEFT JOIN关联两张表,没有可编辑订单的成员也会返回统计值0,不会遗漏成员数据
  • 关联条件中先给订单的member_ids首尾都拼接逗号,再匹配首尾带逗号的成员ID,哪怕member_ids末尾有多余逗号(比如示例中的1,2,34,23,65,)也能正常兼容
  • 用CAST(m.member_id AS TEXT)做类型转换,避免数字和字符串比较时出现异常
  • COUNT(o.order_id)会自动忽略空值,无匹配订单的成员统计结果自动为0

优化建议

如果数据量较大,该匹配方式无法走索引,查询效率偏低。建议后续调整表结构,新增成员订单权限中间表,存储order_id和对应可编辑的member_id的一对一关联关系,后续查询性能会有明显提升。

内容的提问来源于stack exchange,提问作者ddhb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:36:02