如何在含关联、排序、分页的SQL查询中筛选1-10的category_id?
给SQL查询添加category_id范围筛选的方法
你只需要在WHERE子句中添加针对blog_categorys.category_id的范围条件即可,以下是几种简洁的实现方式:
方式1:使用BETWEEN(适合连续范围)
这种写法最简洁,直接匹配1到10的category_id(包含1和10):
SELECT * FROM blogs, blog_categorys WHERE blogs.blog_category = blog_categorys.category_id AND blog_categorys.category_id BETWEEN 1 AND 10 ORDER BY blogs.blog_category, blogs.blog_posting_date DESC LIMIT 4;
方式2:使用>=和<=(逻辑更直观)
和BETWEEN效果完全一致,适合需要明确展示范围边界的场景:
SELECT * FROM blogs, blog_categorys WHERE blogs.blog_category = blog_categorys.category_id AND blog_categorys.category_id >= 1 AND blog_categorys.category_id <= 10 ORDER BY blogs.blog_category, blogs.blog_posting_date DESC LIMIT 4;
额外建议:使用JOIN语法提升可读性
老式的逗号关联写法虽然可用,但现代SQL更推荐显式JOIN语法,代码逻辑更清晰:
SELECT * FROM blogs INNER JOIN blog_categorys ON blogs.blog_category = blog_categorys.category_id WHERE blog_categorys.category_id BETWEEN 1 AND 10 ORDER BY blogs.blog_category, blogs.blog_posting_date DESC LIMIT 4;
内容的提问来源于stack exchange,提问作者Ranish Kumar
相关产品推荐
相关产品推荐

