SQL查询:查找vod_name相同且vod_year相差不大于1的数据

以下SQL语句用于查询mac_vod表中的vod_name相同并且vod_year相差不大于1的数据内容:

SELECT vod_id, type_id, vod_name, vod_year, vod_time
FROM mac_vod AS t1
WHERE EXISTS (
    SELECT 1
    FROM mac_vod AS t2
    WHERE t1.vod_name = t2.vod_name
    AND t1.vod_year - t2.vod_year <= 1
    AND t1.vod_year - t2.vod_year >= -1
    AND t1.vod_id <> t2.vod_id
)
ORDER BY vod_name ASC, vod_time DESC
LIMIT 30

解释:

  • 使用子查询 EXISTS 来检查是否存在符合条件的数据。
  • t1.vod_name = t2.vod_name 保证了两个记录的 vod_name 相同。
  • t1.vod_year - t2.vod_year <= 1t1.vod_year - t2.vod_year >= -1 保证了两个记录的 vod_year 相差不大于1。
  • t1.vod_id <> t2.vod_id 确保排除同一行的数据。
  • ORDER BY vod_name ASC, vod_time DESCvod_name 升序排列,如果 vod_name 相同则按 vod_time 降序排列。
  • LIMIT 30 最多返回30行数据。

这个查询会返回mac_vod表中,具有相同vod_name并且vod_year相差不大于1的数据。

SQL查询:查找vod_name相同且vod_year相差不大于1的数据

原文地址: https://www.cveoy.top/t/topic/qnMR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录