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

Classificação de consultas MySQL com números


Você precisa transmitir sku_size_part1 em um flutuador.

Isso diminuirá a velocidade da sua consulta, mas funcionará:
$brand = mysqli_real_escape_string($brand);
$result = $mysqli->query("SELECT DISTINCT sku_size_part1
                          FROM sku_data 
                          WHERE sku_brandname = '$brand' 
                          ORDER BY CAST(sku_size_part1 AS FLOAT) DESC");

Isso tornará a consulta mais lenta, porque o MySQL não poderá usar um índice para fazer a classificação, o uso de uma função impede isso.

Uma solução melhor (se possível) seria redefinir sku-size_part1 como um decimal (10,2).
-- Make a backup first --
ALTER TABLE sku_data CHANGE sku_size_part1 DECIMAL(10,2); 

(Certifique-se de que o primeiro parâmetro (10) e o segundo parâmetro (2) sejam grandes o suficiente para conter todos os valores possíveis.)
Veja:http://dev.mysql .com/doc/refman/5.0/en/cast-functions.html