mysql - 我如何首先对特定国家/地区的 mySQL 数据进行排序,然后是正常顺序?

标签 mysql

我有一个像这样的 mySQL 数据集:

id      | name      | country_id      | sort    |
-------------------------------------------------
0000001   Name A      2001              29.90
0000002   Name B      2929              90.02
0000003   Name C      2001              99.50
0000004   Name D      2001              42.03
0000005   Name E      2929              62.49
0000006   Name F      1005              78.00

通常,我会执行 ORDER BY sort DESC 然后我会得到如下结果:

0000003   Name C      2001              99.50
0000002   Name B      2929              90.02
0000006   Name F      1005              78.00
0000005   Name E      2929              62.49
0000004   Name D      2001              42.03
0000001   Name A      2001              29.90

现在,我想做的是首先显示 country_id 2929 的结果,同样按 sort DESC 排序,然后是 中的其他结果>sort DESC 顺序,就像之前没有 country_id 顺序一样。

我将如何实现?所以基本上顺序应该是:

0000002   Name B      2929              90.02
0000005   Name E      2929              62.49
0000003   Name C      2001              99.50
0000006   Name F      1005              78.00
0000004   Name D      2001              42.03
0000001   Name A      2001              29.90

最佳答案

使用按 FIELD 排序

order by FIELD(country_id,'2929') DESC,sort DESC

关于mysql - 我如何首先对特定国家/地区的 mySQL 数据进行排序,然后是正常顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356713/

相关文章:

mysql - 如何在 MySQL 中使用自定义逻辑 IF 语句比较两列之间的值

mysql - 查询最近的列并对 MySQL 中的其他列求和

mysql - 使用带有 UTF8 的 VARCHAR 的 SQL 表(关于多字节字符长度)

MySQL查询每个用户的最新记录

php - 看不见的 MYSQL 错误

mysql - 使用 SQL 查询在单词列表中查找精确的单词匹配

php - mysql/php/javascript/css 日历建议

MySQL 存储过程仅在第一次运行时返回结果

MySQL-查找行的范围

mysql - SQL:如何使用另一个表中的信息选择某些内容