【发布时间】:2016-12-29 14:56:03
【问题描述】:
给定下表:
CREATE TABLE `example` (
`Identifier` int(11) NOT NULL AUTO_INCREMENT,
`FieldValue` varchar(255) DEFAULT NULL,
`FieldOrder` enum('asc','desc') DEFAULT 'asc',
PRIMARY KEY (`Identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我想运行一个查询,该查询根据 FieldOrder 字段中的值对 FieldValue 字段进行排序。例如
Select * from example order by FieldValue [here should the FieldOrder value be placed]
是否可以在查询的部分排序中引用 FieldOrder 字段?
【问题讨论】:
-
问题不够清楚。请添加一些示例来展示您想要实现的目标。
-
如果表有两条记录,这将如何工作;一种说它应该是上升的,一种说它应该是下降的?请提供示例...
-
FieldValue包含什么?它是否碰巧包含多个值(逗号分隔),也许?如果是这样,请不要在一个字段中存储多个值。使用链接表并“规范化”您的数据库。 -
@Mr47 FieldOrder 的值始终相同。底层数据被分组。每组记录都有自己的排序顺序。但是一次只查询一个组。这个例子只是一个非常简化的版本。
-
@Nebu:如果一次只查询“group”,那么这个表结构是不正确的。您真正想要的是一个表,其中每个组有多行,每行包含一个值。然后,您只需查询 gor 标识符并根据需要进行排序。
标签: mysql sql select sql-order-by