【问题标题】:MySQL sorting by custom patternMySQL按自定义模式排序
【发布时间】:2014-03-04 02:12:49
【问题描述】:

我正在尝试从 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 的列是依赖于排序的那一列。

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

【问题讨论】:

  • 我不明白这个模式
  • 好吧,我想问题出在我身上。让我尝试编辑问题并使其变得更好。
  • 还有其他列可以说明您的模式中第三个和前两个 AAAA 之间的区别吗?
  • 它们是具有不同 ID 的不同条目。我正在考虑一个查询的值数组以循环遍历,但我没有找到任何类似的东西,所以我想我只是想太多了......
  • 我对我的问题进行了编辑。我希望现在更清楚一点。

标签: mysql sql sorting


【解决方案1】:

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

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

【讨论】:

  • 我同意你的看法。这不是我唯一的专栏。请检查我在上述问题中的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 2019-03-03
相关资源
最近更新 更多