我想弄清楚如何从我的数据库中以我想要的顺序获取信息。例如,我有下面的名字在我的数据库:MYSQL联合还是排序?
Matt
Jimmy
Craig
Jenny
Sue
我想出来的顺序如下:
Sue
Craig
Jimmy
Matt
Jenny
我会怎么做,使用MYSQL?
我想弄清楚如何从我的数据库中以我想要的顺序获取信息。例如,我有下面的名字在我的数据库:MYSQL联合还是排序?
Matt
Jimmy
Craig
Jenny
Sue
我想出来的顺序如下:
Sue
Craig
Jimmy
Matt
Jenny
我会怎么做,使用MYSQL?
用途:
ORDER BY CASE t.name
WHEN 'Sue' THEN 1
WHEN 'Craig' THEN 2
WHEN 'Jimmy' THEN 3
WHEN 'Matt' THEN 4
WHEN 'Jenny' THEN 5
ELSE 6
END
它使用CASE语句将基于对排序的值的任意值。
当然,你可以像下面这样做(如果我理解正确你的要求):
order by field(t.name, 'Jenny', 'Matt', 'Jimmy', 'Craig', 'Sue') desc
编辑:
其实,如果你要处理与一些已经是通用的情况下,已知值的列和未知值的数量,常见的情况是将已知值显示在结果集的开始处(按预定义的顺序),其余部分在后面。为此,您应该按照与field
函数参数列表相反的顺序添加预定义值,并使订单降序。
这样'Sue'先走(field
返回5),'Craig' - 第二(4返回)等等直到'Jenny'。对于不在参数列表中的值,field
返回0.因此,它们将转到结果集的末尾。
参考:FIELD
那么,有没有您想要使用或只是随机的,数据库将永远不会有任何其他的名字比这些任何算法? – Cellfish 2009-11-03 04:16:01