翼度科技»论坛 编程开发 mysql 查看内容

MySQL之FIELD()与ORDER BY()相结合实现对结果的自定义排序方式

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
在MySQL中,可将
  1. FIELD()
复制代码
  1. ORDER BY()
复制代码
结合使用,实现对查询结果的自定义规则排序。

举个通用的例子

假设有一个名为
  1. your_table
复制代码
的表,包含名为
  1. your_column
复制代码
的列
希望按照列
  1. your_column
复制代码
的值的特定顺序进行排序:
  1. SELECT *
  2. FROM your_table
  3. ORDER BY FIELD(your_column, 'value1', 'value2', 'value3');
复制代码
  1. FIELD()
复制代码
函数中列出的值决定了排序的顺序,可根据实际情况调整这些值。

举个实际的例子

假设有一个名为
  1. fruits
复制代码
的表,其中包含以下数据:
  1. +----+---------+
  2. | id | fruit   |
  3. +----+---------+
  4. | 1  | banana  |
  5. | 2  | apple   |
  6. | 3  | orange  |
  7. | 4  | banana  |
  8. | 5  | apple   |
  9. +----+---------+
复制代码
需按照特定顺序(‘apple’,‘orange’,‘banana’)对这些水果进行排序:
  1. SELECT *
  2. FROM fruits
  3. ORDER BY FIELD(fruit, 'apple', 'orange', 'banana');
复制代码
输出将会如下:
  1. +----+---------+
  2. | id | fruit   |
  3. +----+---------+
  4. | 2  | apple   |
  5. | 5  | apple   |
  6. | 3  | orange  |
  7. | 1  | banana  |
  8. | 4  | banana  |
  9. +----+---------+
复制代码
总结

以上查询通过
  1. FIELD()
复制代码
函数实现了根据自定义规则对结果进行排序。
这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/database/319116nwq.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
来自手机

举报 回复 使用道具