代码之家  ›  专栏  ›  技术社区  ›  Samuel

结合SQL和PHP

  •  0
  • Samuel  · 技术社区  · 14 年前
    $months = array('January', ... , 'December');
    $sql='
    SELECT *
    FROM `residencies`
    WHERE `Year` = 2010
    ORDER BY array_search($months,`MonthFrom`) `DayFrom`';
    

    4 回复  |  直到 14 年前
        1
  •  3
  •   sdot257    14 年前
    $month_arr = array("January","February","March");
    
    $months = implode("', '", $month_arr);
    
    $query="SELECT * FROM residencies WHERE year = 2010 ORDER BY FIELD('MonthFrom', '$months'), `DayFrom`;
    
        2
  •  1
  •   Loïc Février    14 年前
    $sql='
    SELECT *
    FROM `residencies`
    WHERE `Year` = 2010
    ORDER BY DATE_FORMAT(`MonthFrom`,"%M") `DayFrom`';
    

    但是这会按照月份名称的字母顺序来排序吗?你真的需要吗?

    您也可以根据 MonthFrom

        3
  •  1
  •   Brian    14 年前

    看起来您正在尝试在SQL语句中使用PHP函数。如果您需要按MonthFrom(即月份名称)排序,请尝试以下操作:

    SELECT *
    FROM `residencies`
    WHERE `Year` = 2010
    ORDER BY FIELD(`MonthFrom`, 'January', ..., 'December'), `DayFrom`;
    

    (你可以填写剩下的月份)

        4
  •  1
  •   Spudley    14 年前