SQL查询:查找vod_name相同且vod_year相差不大于1的数据
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 <= 1和t1.vod_year - t2.vod_year >= -1保证了两个记录的vod_year相差不大于1。t1.vod_id <> t2.vod_id确保排除同一行的数据。ORDER BY vod_name ASC, vod_time DESC按vod_name升序排列,如果vod_name相同则按vod_time降序排列。LIMIT 30最多返回30行数据。
这个查询会返回mac_vod表中,具有相同vod_name并且vod_year相差不大于1的数据。
原文地址: https://www.cveoy.top/t/topic/qnMR 著作权归作者所有。请勿转载和采集!