Pregunta

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?

¿Fue útil?

Solución

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!
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top