Autor Zpráva
Petr1234
Profil *
Čau,

mám v databázi několik řádků s údaji nabídky hliníkových kol. V jednom sloupci mám velikost kol např. 7x15, 5,5x13, 6x14, 6,5x15. Když si nechám vypsat záznamy setříděný podle velikost vzetupně, vypíše mi je takto:

5,5x13
6,5x15
6x14
7x15

Což není podle velikosti kol. Předpokládám, že to zapříčiňuje ta desetiná čárka. Navíte jak bych to mohl opravit, ať se to vypíše správně? Sloupec mám ve formátu varchar.

Díky Petr
Hugo
Profil
Toto imho nepůjde, protože db to bere jako řetězec. Leda to rozdělit do dvou sloupců typu float.
tiso
Profil
Triedi sa to ako text, nie ako číslo... buď si sprav 2 stĺpce a ukladaj to ako čísla 5,5/13, alebo si to zotrieď ručne...
Anonymní
Profil *
Myslím, že by sa v MySQL mali dať použiť nejaké funkcie na získanie čísel z reťazca.
No ak sa to má triediť často, asi by bolo najlepšie stĺpec rozdeliť na dva číselné,
pomocou nich zoznam zoradiť a spájať ich do reťazca.
nightfish
Profil
třeba
SELECT * FROM `test`ORDER BY substring_index( rozmer, 'x', 1 )
Kajman_
Profil *
A ještě bude asi třeba replace , za .
Petr1234
Profil *
třeba
SELECT * FROM `test`ORDER BY substring_index( rozmer, 'x', 1 )


Toto neni spatny napad, ale ja bych mel do toho parametru nejak nacpat vsechny mozne rozmery v danem sloupci, ne? Takto dokazu odfiltrovat jen nejaky konkretni, ne?

Petr
nightfish
Profil
Kajman_
zřejmě jo, moc jsem to netestoval, jen na mysql 4.0.21 a tam to prošlo i s čárkou správně

Petr1234
rozmer = název sloupce, ve kterém jsou uloženy rozměry...
Kajman_
Profil *
s čárkou to dojde správně... do té doby, dokud tam nebudou i čísla větší než 10, jinak bude nutné převést na tečku a přičíst nulu nebo tak něco

ale určitě by bylo lepší to dát do dvou sloupečků s typem decimal
Petr1234
Profil *
No pise mi to chybu: FUNCTION databaze.SUBSTRING_INDEX does not exist

Na serveru MySQL 5.0.34

Petr
nightfish
Profil
Petr1234
máš špatně ten dotaz s největší pravděpodobností...
konkrétně se mu nelíbí zápis databaze.SUBSTRING_INDEX - do databaze. tam být nemá
Petr1234
Profil *
Nene, uz jsem na to prisel. Mezi tou funkci a zavorkou kde jsou jeji parametry nesmi byt mezera. Musi to byt u sebe :)

Diky vsem :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0