문제

In mysql, I need to set the "ORDER BY" for two cases: name or mod_1, depending on what the user selected in a combobox. My query is:

SELECT
    name,
    SUM(IF(mod = 1, 1, 0)) AS mod_1,
    SUM(IF(mod = 2, 1, 0)) AS mod_2,
    SUM(IF(mod = 3, 1, 0)) AS mod_3
FROM
    DW_RM_Log
WHERE
    ...
ORDER BY
    name (or mod_1 DESC)

Is it possible to do this in mysql or I need to code it in php? Or both?

도움이 되었습니까?

해결책

bored enough to do this for you:

$q = "SELECT
    name,
    SUM(IF(mod = 1, 1, 0)) AS mod_1,
    SUM(IF(mod = 2, 1, 0)) AS mod_2,
    SUM(IF(mod = 3, 1, 0)) AS mod_3
FROM
    DW_RM_Log
WHERE
    ...
ORDER BY ";

if ($x) {
    $q .= "name DESC";
} else {
    $q .= "mod_1 DESC";
}
 //run $q!
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top