Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sortowanie zapytań MySQL za pomocą liczb

Musisz przesłać sku_size_part1 w pływak.

Spowoduje to spowolnienie zapytania, ale zadziała:

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

Spowoduje to spowolnienie zapytania, ponieważ MySQL nie będzie w stanie użyć indeksu do sortowania, a użycie funkcji zapobiega temu.

Lepsze rozwiązanie (jeśli to możliwe) byłoby przedefiniowanie sku-size_part1 jako ułamek dziesiętny(10,2).

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

(Upewnij się, że pierwszy parametr (10) i drugi parametr (2) są wystarczająco duże, aby pomieścić wszystkie możliwe wartości.)
Patrz:http://dev.mysql .com/doc/refman/5.0/en/cast-functions.html




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie podano danych dla parametrów w przygotowanym zestawieniu

  2. SQL:UPDATE z INNER JOIN z LIMIT

  3. Skąd mogę pobrać mysql jdbc jar?

  4. Podziel stałą wartość na kraje na podstawie dziennego udziału w przychodach

  5. Instrukcja MySQL If Date?