sql >> Base de Datos >  >> RDS >> Mysql

El parámetro en orden por cláusula no ordena -mysql, C#

Esto se debe a que ORDER BY utiliza un identificador de base de datos (es decir, una columna, alias o expresión). Estás pasando el valor como un parámetro.

En otras palabras, la consulta resultante sería equivalente a

... ORDER BY 'StartTime' ...

Si valida la entrada del usuario contra un conjunto conocido de valores (es decir, las columnas disponibles), simplemente puede interpolar el valor en la cadena de consulta, por ejemplo (muy aproximado)

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