我有一个列表
- 德克萨斯州,计数为 5
- 纽约,计数为 6
- 阿拉巴马州,计数为 4
- 洛杉矶 1
- 波士顿 1
- 华盛顿州 1
我要订购
- 阿拉巴马州
- 纽约
- 德克萨斯州
- 波士顿
- 洛杉矶
- 华盛顿
因此,任何包含 count()>1 的内容都应按字母顺序排列在列表顶部,任何包含 count()1 的内容都应按字母顺序排列在列表底部。
目前我已经使用
$orderby = 'counter DESC, display_value ASC';
但它给了我
- 纽约
- 德克萨斯州
- 阿拉巴马州
- 波士顿
- 洛杉矶
- 华盛顿
最佳答案
在 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/