这是sql小提琴:
http://sqlfiddle.com/#!9/1b9206/2。我需要按顺序排列和获取这些记录,以便按此顺序显示starter, pro5, pro9, pro14, pro18, pro24, pro31, pro46, pro62, MaxPro.
如何使用mysql或PHP来实现此顺序?
在PHP中,我将以下查询的结果作为数组发送:
SELECT id, CONCAT(name, ' - ', detail) AS name, price FROM am_membership_packages WHERE package = 'monthly' ORDER BY id ASC
我尝试了不同的技巧,从小提琴中可以看出来,但没有任何效果。
答案 0 :(得分:2)
如果您按价格升序订购,它将为您提供所需的订单。
ORDER BY price ASC;
答案 1 :(得分:1)
一种方法是将名为display_index
的列添加到am_membership_packages
表中,然后在查询中执行ORDER BY display_index
。
填充{{ 1}}列,跳过数字可能很有用。例如,如果首先出现display_index
1,则在id
中输入10。如果将来输入的新会员资格套餐需要在display_index
为1的会员资格套餐之前出现,则可以将新套餐的id
输入为5,并且在{中不需要重新编号{1}}用于其他数据行。
答案 2 :(得分:1)
这些名称没有内在的含义,您可以按要求的方式对其进行排序。我建议简单地添加另一列(例如)DisplayOrder
,它是一个整数。
设置值,使其在您ORDER BY DisplayOrder
在查询中时以所需的顺序显示。