mysql 查询语句 按自定义顺序排序
时间: 2023-11-02 13:06:28 浏览: 61
如果需要按照自定义顺序排序,可以使用 MySQL 的 FIELD 函数。FIELD 函数可以返回一个字符串在一个列表中的位置,然后我们可以根据这个位置进行排序。
假设我们有一个表叫做 `users`,其中有一个字段叫做 `name`,我们想要按照自定义顺序排序,比如先是 "Tom",然后是 "Jerry",最后是其他名字,可以使用以下的 SQL 语句:
```
SELECT * FROM users ORDER BY FIELD(name, 'Tom', 'Jerry') DESC, name ASC;
```
其中, `FIELD(name, 'Tom', 'Jerry')` 返回一个值列表,表示 name 字段在 'Tom', 'Jerry' 中的位置。DESC 表示按照位置从大到小排序,而 name ASC 表示按照名字字母顺序排序。
这样就可以按照自定义顺序排序了。
相关问题
mysql group by自定义顺序
根据提供的引用内容,MySQL的GROUP BY语句不能自定义顺序。GROUP BY语句用于将行分组,并根据分组后的结果进行聚合操作。GROUP BY语句的结果是根据分组键的唯一值来创建的。这意味着无法按照自定义顺序对分组结果进行排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Mysql学习笔记(杂谈):where,group,having的执行顺序;group by后组内排序;group by后选择某条数据...](https://blog.csdn.net/sinat_38393872/article/details/107998976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
mysql的自定义排序
在MySQL中,可以使用ORDER BY FIELD语句来进行自定义排序。该语句的语法为:
ORDER BY FIELD(column_name, value1, value2, value3, ...)
其中,column_name是要排序的字段名,value1、value2、value3等是自定义排序的值。通过指定这些值的顺序,可以实现对字段进行自定义排序。
举个例子,如果有一个名为status的字段,你可以使用以下语句来对其进行自定义排序:
ORDER BY FIELD(status, 3, 4, 0, 2, 1)
这样就可以按照3、4、0、2、1的顺序对status字段进行排序。
另外,还可以通过多个字段进行自定义排序。例如,如果想按照姓名进行排序,然后再按照出生日期进行排序,可以使用以下语句:
SELECT * FROM name_info ORDER BY FIELD(name, "张三", "小明", "小刘"), date_birth
这样就会先按照姓名进行排序,然后在相同姓名的情况下按照出生日期排序。
总结来说,MySQL的自定义排序可以通过ORDER BY FIELD语句来实现,可以根据需要指定字段和自定义排序的值,以实现特定的排序需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>