Mysql
 sql >> Database >  >> RDS >> Mysql

Il parametro in ordine per clausola non ordina -mysql, C#

Questo perché ORDER BY utilizza un identificatore di database (cioè una colonna, un alias o un'espressione). Stai passando il valore come parametro.

In altre parole, la query risultante sarebbe equivalente a

... ORDER BY 'StartTime' ...

Se convalidi l'input dell'utente rispetto a un insieme noto di valori (ad es. le colonne disponibili), puoi semplicemente interpolare il valore nella stringa di query, ad esempio (molto approssimativa)

$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
    throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);