| Autor | Zpráva |
|---|---|
| stepanka |
#1 · Zasláno: 9.3.2010 21:25:48
Ahoj,
mohl by mi prosím někdo poradit? Mám sloupec typu varchar, kde jsou uloženy jak číselné tak textové hodnoty. Momentálně vybírám ty šíselné, ale seřazují se mi podle abecedy, ne podle čísla (od nejmenšího po největší). Tuším, že existuje nějaká funkce, která se dává za ORDER BY, ale nemůžu vygooglit, která to je. Nabízí se mi ORDER BY CAST(h.hodnota), ale to mi nefunguje. Měla by ale existovat nějaká jiná.. Nevíte prosím někdo? Moc děkuju |
| Taps Člen |
#2 · Zasláno: 9.3.2010 21:33:16
stepanka:
máš na mysli order by field? Viz např. http://www.rjwebdesign.net/Blog/MYSQL/20070721-Specialni-Razeni-Dat-V-Databazi-MySQL |
| stepanka |
#3 · Zasláno: 9.3.2010 21:41:55
Taps:
Děkuju za reakci, ale to asi ne... Ten dotaz vypadá nějak takto: mysql_query("SELECT h.nazev_cz as hodnota, h.id_hodnota
FROM ".TBL_PREFIX."sablony_hodnoty h
JOIN ".TBL_PREFIX."sablony_polozky sp ON sp.id_polozka = h.id_polozka
WHERE sp.id_polozka = ".$row_var['id_polozka']."
ORDER BY IF(sp.nazev_cz='Dioptrie' or sp.nazev_cz='Zakřivení', CAST(h.nazev_cz AS INTEGER) DESC, h.nazev_cz)") or die (mysql_error());Dioptrie a zakřivení jsou číselného charakteru, tak bych je chtěla seřadit podle čísla, ostatní položky, textového charakteru, normálně podle podle abecedy. Jde to vůbec? |
| Kajman_ |
#4 · Zasláno: 9.3.2010 22:03:35
Možná
ORDER BY IF(sp.nazev_cz='Dioptrie' or sp.nazev_cz='Zakřivení', CAST(h.nazev_cz AS INTEGER), null) DESC, h.nazev_cz |
| stepanka |
#5 · Zasláno: 9.3.2010 22:32:57
Kajman:
Děkuju za příspěvek. Bohužel, nic nevypíše, ani chybu. Ty číselné hodnoty jsou ve tvaru +1.00, +1.25, +1.50, +1.75, -2.00, -2.25, -2.50, atd.. Tzn, vždy se znaménkem a desetinnou tečkou. Je možné, že si s tímhle formátem neví rady.. |
| Kcko Člen |
#6 · Zasláno: 9.3.2010 22:46:22
Mozna Ti pomuze toto, uz si to moc nepamatuji tak si z toho zkus neco vybrat
http://www.rjwebdesign.net/Blog/MYSQL/20090702-Zajimava-uloha-v-MYSQL |
| Kajman_ |
#7 · Zasláno: 9.3.2010 23:11:31
stepanka:
V integeru jsou jen celá čísla. Zkuste místo toho třeba decimal(4,2). A pokud to nevypíše žádný řádek ani to neskončí chybou, tak podmínkám ve where a spojení neodpovídají žádné záznamy. Řazení na to nemá mít vliv. |
| stepanka |
#8 · Zasláno: 11.3.2010 10:52:02
Kcko, Kajman:
Moc vám oběma děkuju za reakce, ale bohužel se mi to tímto způsobem nepovedlo. Přidala jsem další sloupec s názvem "řazení", určila si pořadí položek a řadím podle něho. |
| Hombre |
#9 · Zasláno: 13.3.2010 19:22:36
stepanka:
Ahoj štěpánko, vím že tady se to nehodí psát ale šetl jsem tvou diskuzi o impplementaci platby paypal na webu. Mohla by jsi mi poradit jak na to, nebo zda ti někdo pomohl? díky. Napis mi bud tady nebo na mejla hombre27@seznam.cz díky moc za pomoc :-). Láďa. |