sql >> Databasteknik >  >> RDS >> Mysql

MySQL-frågesortering med siffror

Du måste casta sku_size_part1 i en flyta.

Detta kommer att sakta ner din fråga, men det kommer att fungera:

$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");

Detta kommer att sakta ner frågan, eftersom MySQL inte kommer att kunna använda ett index för att göra sorteringen, att använda en funktion förhindrar det.

En bättre lösning (om möjligt) skulle vara att omdefiniera sku-size_part1 som en decimal(10,2).

-- Make a backup first --
ALTER TABLE sku_data CHANGE sku_size_part1 DECIMAL(10,2); 

(Se till att den första parametern (10) och den andra parametern (2) är tillräckligt stora för att hålla alla möjliga värden.)
Se:http://dev.mysql .com/doc/refman/5.0/en/cast-functions.html




  1. Vilka är begränsningarna för SQL Server Compact? (Eller - hur väljer man en databas att använda på MS-plattformar?)

  2. Schema Switch-A-Roo:Del 2

  3. Vad är det snabbaste sättet att ladda en XML-fil till MySQL med C#?

  4. Hur kan jag hitta alla tabeller i MySQL med specifika kolumnnamn i dem?