You need to enable JavaScript to run this app. SQL如何按同序号关联筛选指定日期的schedule系列meta键值对
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何按同序号关联筛选指定日期的schedule系列meta键值对

问题症结

现有查询存在两个核心问题,导致结果完全不符合预期:

  • 用OR逻辑直接纳入全量schedule_%_lesson记录,没有和筛选通过的日期记录做排期序号关联,会错误带出schedule_2、schedule_4对应的无关lesson数据
  • 日期值写的是带前导零的2021/02/07、2021/02/08,和表内实际存储的2021/2/7、2021/2/8格式不匹配,会导致符合条件的日期记录也筛选失败
正确实现方案

核心逻辑为:先提取符合日期筛选条件的排期序号,再拉取同序号下的全部关联排期记录,完全适配当前键值对的存储结构,不需要额外做表连接。

实现步骤

  • 从所有匹配schedule_%_date的记录中,拆分出meta_key里夹在前缀和后缀之间的数字序号,筛出日期值为目标值的序号集合
  • 匹配所有meta_key中携带这些序号的排期记录(同时包含date、lesson两种后缀),通过正则规则过滤非排期类的无关数据

可直接运行的SQL(MySQL方言)

SELECT * 
FROM 你的表名
WHERE 
  SUBSTRING_INDEX(SUBSTRING_INDEX(meta_key, 'schedule_', -1), '_', 1) IN (
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(meta_key, 'schedule_', -1), '_', 1)
    FROM 你的表名
    WHERE 
      meta_key LIKE 'schedule_%_date'
      AND meta_value IN ('2021/2/7', '2021/2/8')
  )
  AND meta_key REGEXP '^schedule_[0-9]+_(date|lesson)$';

运行结果

语句返回的结果和预期完全一致:

meta_keymeta_value
schedule_1_date2021/2/7
schedule_1_lesson100
schedule_3_date2021/2/8
schedule_3_lesson90

内容的提问来源于stack exchange,提问作者Luu Hoang Bac

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 17:15:06