虽然标题很宽泛,但我的问题很简单。我有一个表,我们称之为“新闻”,里面有文章。通常文章是按order
拉取的,但只有在“精选”时才会在首页上显示。但是,如果查询是:
SELECT * FROM {TABLE_PREFIX}news WHERE `status` = '1' AND `featured` = '1' ORDER BY `order` LIMIT 0, 4
那么至少有一些文章必须被推荐。但是,如果只有 2 篇精选文章怎么办?所以我想有一个后备,所以当只有 2 篇精选文章时,它也会得到两篇非精选文章。
我认为,这可以解决问题,但它并没有像我计划的那样工作:
SELECT * FROM {TABLE_PREFIX}news WHERE `status` = '1' AND `featured` = '1' ORDER BY `featured`, `order` LIMIT 0, 4
最佳答案
您的方向是正确的,但您仍然选择了featured = 1
。试试这个:
SELECT * FROM {TABLE_PREFIX}news WHERE `status` = '1' ORDER BY `featured` DESC, `order` LIMIT 0, 4
关于mysql - 如果条件匹配但有后备,如何获取 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8939028/