mysql查询按字母顺序对同一列表中计数> 1和计数= 1的项目进行排序

标签 mysql sql count sql-order-by

我有一个列表

  1. 德克萨斯州,计数为 5
  2. 纽约,计数为 6
  3. 阿拉巴马州,计数为 4
  4. 洛杉矶 1
  5. 波士顿 1
  6. 华盛顿州 1

我要订购

  1. 阿拉巴马州
  2. 纽约
  3. 德克萨斯州
  4. 波士顿
  5. 洛杉矶
  6. 华盛顿

因此,任何包含 count()>1 的内容都应按字母顺序排列在列表顶部,任何包含 count()1 的内容都应按字母顺序排列在列表底部。

目前我已经使用

 $orderby = 'counter DESC, display_value ASC';

但它给了我

  1. 纽约
  2. 德克萨斯州
  3. 阿拉巴马州
  4. 波士顿
  5. 洛杉矶
  6. 华盛顿

最佳答案

在 MySQL 中,您可以将其表示为:

order by (counter > 1) desc, display_value

在数字上下文中, bool 值被视为整数,true 为 1,false 为 0。因此 (count > 1) desc 将 true 值放在前面。然后按 display_value 对它们进行排序。

关于mysql查询按字母顺序对同一列表中计数> 1和计数= 1的项目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847060/

相关文章:

mysql - 获取特定字段具有两个最高值的所有记录 - MySQL

php - mysql,从表单数据构建长的 sql 查询。 (php)

php - 需要根据登录的用户名计算列中的行数

mysql - EXPLAIN 关键字,它是否也执行查询或仅执行 "explains"查询?

mysql - date_format(from_unixtime()) 子选择非常慢

Excel - 条件在哪里?

mysql - 计算具有相同 WHERE 条件的多个列

mysql - 将数据对播种到 Rails 应用程序

sql - 比较未完全解密的加密银行帐户详细信息

c# - 有没有一种扩展代码优先迁移的好方法