我需要能够按特定顺序显示以下查询的结果。例如:在结果的其余部分之前显示精选列表。
WHERE IS `featured-listing` && WHERE IS NOT `featured-listing`
可能会运行2个查询和一个联合权利,这是最有效的解决方案吗?我知道这可以通过一个查询来完成,我只能记住它是如何完成的。任何和所有的帮助表示赞赏。
SELECT `Assigned-Regions`,`Description`,`Category`,`Start-Date` FROM `adds` WHERE `Status` = "Active" ORDER BY `Start-Date` DESC
答案 0 :(得分:2)
我会使用ORDER BY的case语句。
等等
SELECT ... ORDER BY (CASE WHEN
featured-listing
THEN 1 ELSE 2) ASC, some-other-field
ASC
答案 1 :(得分:1)
听起来您只需要在查询中添加ORDER BY
子句。
如果featured-listing
列是整数数据类型且包含值1或0(1 =是特色列表,0 =不是特色列表),那么您可以简单地添加以下内容:
ORDER BY `featured-listing` DESC, `Start-Date` DESC
或者,您可以使用表达式:
ORDER BY IF(`featured-listing`=1,1,0) DESC, `Start-Date` DESC
答案 2 :(得分:0)
你可以做条件排序..不确定feature-listing是什么,但没有看到一些数据,但这是条件排序的逻辑
SELECT `Assigned-Regions`,`Description`,`Category`,`Start-Date`
FROM `adds`
WHERE `Status` = "Active"
ORDER BY
CASE WHEN `featured-listing` THEN 1 ELSE 2 END ASC,
`Start-Date` DESC