Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Parâmetro em ordem por cláusula não ordena -mysql, C#


Isso ocorre porque ORDER BY usa um identificador de banco de dados (ou seja, uma coluna, alias ou expressão). Você está passando o valor como parâmetro.

Em outras palavras, a consulta resultante seria equivalente a
... ORDER BY 'StartTime' ...

Se você validar a entrada do usuário em relação a um conjunto conhecido de valores (ou seja, as colunas disponíveis), você pode simplesmente interpolar o valor na string de consulta, por exemplo (muito grosseiro)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
    throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);