Mysql 对结果进行排序而不排除其他结果

标签 mysql sql-order-by

我有一个按国家/地区列出的本地化结果列表。我想首先获得有效国家 X 的结果,然后再获得其他国家的结果。这可能吗?

如果我设置 where "anno_country"= 1 ...它会排除其他国家/地区的结果。我想要类似“按国家/地区排序= 3”之类的内容...

目前,这是我的 MySQL 查询:

SELECT DISTINCT * 
FROM (`annonce`) 
JOIN possede USING (`anno_id`) 
JOIN annonceur USING (`ann_id`) 
JOIN lang_pays USING (`pays_id`) 
JOIN cat_lang USING (`cat_id`) 
WHERE 
    `cat_id` IN ('4', '9', '5', '426', '6', '435', '7', '3', '8', '2') 
    AND 
    `anno_active` = 1 
    AND 
    `anno_mode` = 1 
    AND 
    `cat_lang`.`lang_id` = '3' 
    AND 
    `lang_pays`.`lang_id` = '3' 
ORDER BY `anno_id` desc

你有什么想法吗?

最佳答案

你可以使用这个:

ORDER BY (country != 3), anno_id DESC

这将在顶部显示国家/地区 = 3 的行,按 anno_id desc 排序,然后在底部显示国家/地区 = 3 的所有行,按 anno_id desc 排序。

关于Mysql 对结果进行排序而不排除其他结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15267038/

相关文章:

mysql - 如何体面地跟踪SVN对数据库结构的修改?

mysql - Tcl/MySQL查询: comparing integer to seconds

c# - 将 OrderBy 与 Entity Framework 和 ObjectContext.CreateQuery(T) 结合使用时出现问题

sql - 子查询中的 "ORDER BY"- 在 MonetDB 中不可用?

mysql - ORDER BY datetime 使查询非常慢

php - Symfony2/Doctrine 循环查询

php - SQL 查询适用于 phpMyAdmin 但不适用于 Codeigniter

mysql - 用于没有 key 长度的 key 规范

mysql - 首先根据单词中的初始术语对结果进行排序

postgresql - 保留 distinct 内部 string_agg 的顺序