Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ORDER BY
Forum PHP.pl > Forum > Bazy danych > MySQL
misiek172
Witam.

Normalnie posortowana tabela ORDER BY `name` ASC wywali tak:

Abecadlo112
Abecadlo12
Abecadlo8

Jak powinno wyglądać zapytanie aby mysql widział całe liczby, nie tylko cyfry, czyli:

Abecadlo8
Abecadlo12
Abecadlo112
Abecadlo113/23/2009
Abecadlo113/24/2009

Pozdrawiam, Łukasz.
piotrooo89
natsort w mysql szukaj w google.
misiek172
tylko nigdzie nic konkretnego nie ma :/
yaro015
http://www.digipedia.pl/php/manual/view/fu...on.natsort.html

Wtedy nie sortujesz za pomocą MySQL a już w PHP, po pobraniu danych z bazy. 




misiek172
czytaj uważnie

piotrooo89 miał na myśli algorytm za zasadzie PHP natsort w mysql

ten coś mniej więcej trybi:

  1. SELECT *,
  2. CASE WHEN ASCII(RIGHT(`NAME`, 1)) > 47 AND ASCII(RIGHT(`NAME`, 1)) < 58
  3. THEN LPAD(CONCAT(`NAME`, \'-\'), 15, \'0\')
  4. ELSE LPAD(`NAME`, 15, \'0\') END AS `vsort` from CATEGORY ORDER BY `vsort`
piotrooo89
w PHP to każdy głupi umie. słuchaj ja już dawno nie robiłem natsorta w MySQL'u i powiem szczerze że tak z miejsca to cięzko może być. narazie jestem w pracy jak wróce do domu to coś pokombinuje.
mooschka
Cytat(misiek172 @ 4.11.2009, 12:28:04 ) *
Abecadlo8
Abecadlo12
Abecadlo112
Abecadlo113/23/2009
Abecadlo113/24/2009


Czy długość tekstu jest stała? Można próbować konwertować część liczbową za pomocą funkcji CONVERT.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.