MySQL 按自定义模式排序

标签 mysql sql sorting

我正在尝试从 MySQL 数据库表中选择信息,并按照自定义模式对结果进行排序。

我想要实现的目标

我的表格中有一个列可以有 4 个不同的值(条目类型)。

我们称它们为 AAA、BBB、CCC、DDD,模式应该类似于:

AAA
AAA
BBB
AAA
CCC
DDD

所以我想要一个像这样排序的表格:

Before    After
 AAA       AAA
 AAA       AAA
 AAA       BBB
 AAA       AAA
 AAA       CCC
 BBB       DDD
 BBB       AAA
 CCC       AAA
 DDD       BBB

我已经尝试过FIELD()函数,但它不会按模式对它们进行排序。

我正在考虑使用另一个表进行排序,但我会有不同的查询和不同的结果,并且我希望模式始终以相同的方式开始。

由于我不确定 MySQL 中是否存在此选项,因此我愿意接受任何建议和解决方法。

编辑

好吧,我没有这么说就犯了一个大错误。该表有多列,ID作为AI主键。 AAA、BBB、CCC、DDD 列是取决于排序的列。

所以我想按此列对查询进行排序,但按照上述方式进行排序。

最佳答案

我觉得可以公平地说,通常,如果关系数据库表中的单个列可以在多个表中具有相同值除了一条记录之外,其他列中往往也会有值,这些值赋予该记录不同的含义,或者在记录排序中的不同位置。

当您可能需要包含至少一项其他信息来提供排序时,您正专注于一列。如果数据库中没有其他信息,则可能需要将其放入数据库中。

关于MySQL 按自定义模式排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21614659/

相关文章:

php - 多对多表关系

sql - 计算花费时间的总和

java - 正则表达式从字符串中检索最后一位数字并对它们进行排序

Android - 我需要对集​​合的最小值和最大值进行排序吗?

Javascript:如何按数组中的对象值对数组进行排序?

mysql - 更新/插入记录 - ON DUPLICATE KEY UPDATE - 不更新记录

php - 在我的网站中创建类似 Facebook 的搜索

javascript - 根据用户输入创建表单字段

mysql - 编写脚本以在 SQL 中转换 varchar 数据

c# - ExecuteNonQuery() 执行存储过程时返回-1