现有数据SQL的订单下拉列表

时间:2015-02-05 13:01:37

标签: mysql sql sql-order-by

我有一个MySQL数据库的记录列表。单击记录时,它会将您带到可以更新这些记录的页面。我正在使用HTML表单动态显示数据。

例如,如果游戏在2007中发布,我会有一个下拉框,其中包含可以更改为的所有不同年份。

我当前用于年度下拉列表的SQL如下;

SELECT DISTINCT gameYear FROM games ORDER BY gameYear

按顺序显示年份。有没有办法让它们以正确的顺序显示(IE 2001, 2002, 2003等),但是选择现有的年份开始?

一个例子,一年的游戏为2007

当我点击记录并开始编辑游戏时,我希望下拉框自动显示当前值(2007)。然后,当我选择下拉列表时,我希望这些年份仍然有序。

3 个答案:

答案 0 :(得分:1)

你可以这样排序:

select DISTINCT gameYear from game order by 
  case
     when gameYear = 2007 then 0
     else gameYear 
  end;

答案 1 :(得分:1)

您可以通过循环SQL结果集并输出HTML <option>元素来填充下拉列表。如果当前循环值等于游戏年份,则需要在此循环内部进行检查。如果是添加selected HTML属性。

答案 2 :(得分:0)

SelectedYear是您当前的选定年份

SELECT '$SelectedYear' as gameYear
UNION
SELECT * FROM 
  (SELECT gameYear from game 
  WHERE gameYear <> $SelectedYear 
  ORDER BY gameYear)