Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Saf Forumski umjetnik
Pridružen/a: 10. 06. 2005. (21:55:28) Postovi: (1B0)16
Spol:
Lokacija: Zagreb
|
Postano: 19:50 pon, 30. 1. 2012 Naslov: cPanel, myPHPadin i baze podataka |
|
|
Helo, imam problem sa upravljanjem bazom podataka, naime radim na jednom comparison siteu i imam ogromnu baz proizvoda koje uspoređujem po raznim kriterijima.
Tablice u bazi sadrže decimalne brojeve sa ","
Prvo što sam primjetio je da se podatci na siteu (ali i u myPHPadminu) sortiraju leksikografski a ne numerički, ali taj problem smo rješili (barem djelomično)
Ono što me sada muči je to što mi se čini da engine "prepoznaje" broj ali samo do decimalnog zareza "," i da sortira samo cjelobrojne djelove, a ne i dio iz decimale
E sad, kako natjerati bazu da "prepozna" zarez kao decimalni i da je to ustvari decimalni broj?
Tenx
Helo, imam problem sa upravljanjem bazom podataka, naime radim na jednom comparison siteu i imam ogromnu baz proizvoda koje uspoređujem po raznim kriterijima.
Tablice u bazi sadrže decimalne brojeve sa ","
Prvo što sam primjetio je da se podatci na siteu (ali i u myPHPadminu) sortiraju leksikografski a ne numerički, ali taj problem smo rješili (barem djelomično)
Ono što me sada muči je to što mi se čini da engine "prepoznaje" broj ali samo do decimalnog zareza "," i da sortira samo cjelobrojne djelove, a ne i dio iz decimale
E sad, kako natjerati bazu da "prepozna" zarez kao decimalni i da je to ustvari decimalni broj?
Tenx
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 20:54 pon, 30. 1. 2012 Naslov: |
|
|
Jesi siguran da je taj stupac tipa neki broj ([tt]decimal[/tt], [tt]numeric[/tt], [tt]float[/tt], [tt]double[/tt]), a ne nesto textualno (npr. [tt]varchar[/tt])?
Naime, ne vidim kako bi decimalni broj sa zarezom koristio u izrazima. Sto bi vratilo [tt]select 17,19;[/tt]? Dva cjelobrojna ili jedan realni stupac?
Ako ispadne da je stupac textualnog tipa, onda ga prebaci na realni (postoji sansa da ti se kojesta raspadne, pa prvo napravi backup).
Alternativno, mozes umjesto
[tt]select x ...[/tt]
raditi
[tt]select replace(x, ",", ".") ...[/tt]
(nisam siguran treba li mnoziti s necim, da postane broj).
Ovo "rjesenje" je lose, jer svaki zahtjev radi gomimlu nepotrebnog posla i opterecuje server.
Jesi siguran da je taj stupac tipa neki broj (decimal, numeric, float, double), a ne nesto textualno (npr. varchar)?
Naime, ne vidim kako bi decimalni broj sa zarezom koristio u izrazima. Sto bi vratilo select 17,19;? Dva cjelobrojna ili jedan realni stupac?
Ako ispadne da je stupac textualnog tipa, onda ga prebaci na realni (postoji sansa da ti se kojesta raspadne, pa prvo napravi backup).
Alternativno, mozes umjesto
select x ...
raditi
select replace(x, ",", ".") ...
(nisam siguran treba li mnoziti s necim, da postane broj).
Ovo "rjesenje" je lose, jer svaki zahtjev radi gomimlu nepotrebnog posla i opterecuje server.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
Saf Forumski umjetnik
Pridružen/a: 10. 06. 2005. (21:55:28) Postovi: (1B0)16
Spol:
Lokacija: Zagreb
|
Postano: 11:32 sri, 1. 2. 2012 Naslov: |
|
|
hmmm... da, sad se nameće slijedeći problem. Naime, koliko vidim stupac (a radi se o meta_key stupcu je definiran kao [b]varchar(255)[/b]), pa zato vjerojatno ovaj problem sa decimalnim brojevima (iako i tako definiran stupac mogu sortirati numerički a ne leksikografski)
E sad, s obzirom da u istoj tablici imam u meta_key stupcu i numeričke i tekstualne unose, a trebam sortirati samo numeričke vrijednosti, što bi se dogodilo kada bi cijeli taj stupc definirao kao [b]decimal[/b]? Što bi se dogodilo sa tekstualnim unosima u tom slučaju? Jel bi ostao kakav je ili bi se dogodio neki NaN?
I dalje mi nije jasno, a googlam već 5 dana jel ima ikakve veze dali je broj spremljen kao 10,99 ili 10.99?
Edit: općenito me užasno muči korištenje "," i "." na računalu. Naime, nevjerojatno mi je da neki alati (npr. OpenOffice Table, OpenOffice Database, Excel, pa čak i built in MS Calculator) po defaultu koriste "," u decimalnim brojevima, a s druge strane alati kao wolframalpha koriste "."
E sad, istražujem danima i zapravo ne mogu naći pravilo, naime i Wikipedia kaže da korištenje "." ili "," ovisi o državi, pa tako za Hrvatsku kaže da se koristi i jedno i drugo :bananagreen: ([url]http://en.wikipedia.org/wiki/Decimal_mark[/url])
...
Ako ću trebati mijenjati sve "," u ".", jel pametno exportati tablicu, otvoriti je u npr Excelu i napraviti Replace "*,**" with "*.**"?
hmmm... da, sad se nameće slijedeći problem. Naime, koliko vidim stupac (a radi se o meta_key stupcu je definiran kao varchar(255)), pa zato vjerojatno ovaj problem sa decimalnim brojevima (iako i tako definiran stupac mogu sortirati numerički a ne leksikografski)
E sad, s obzirom da u istoj tablici imam u meta_key stupcu i numeričke i tekstualne unose, a trebam sortirati samo numeričke vrijednosti, što bi se dogodilo kada bi cijeli taj stupc definirao kao decimal? Što bi se dogodilo sa tekstualnim unosima u tom slučaju? Jel bi ostao kakav je ili bi se dogodio neki NaN?
I dalje mi nije jasno, a googlam već 5 dana jel ima ikakve veze dali je broj spremljen kao 10,99 ili 10.99?
Edit: općenito me užasno muči korištenje "," i "." na računalu. Naime, nevjerojatno mi je da neki alati (npr. OpenOffice Table, OpenOffice Database, Excel, pa čak i built in MS Calculator) po defaultu koriste "," u decimalnim brojevima, a s druge strane alati kao wolframalpha koriste "."
E sad, istražujem danima i zapravo ne mogu naći pravilo, naime i Wikipedia kaže da korištenje "." ili "," ovisi o državi, pa tako za Hrvatsku kaže da se koristi i jedno i drugo (http://en.wikipedia.org/wiki/Decimal_mark)
...
Ako ću trebati mijenjati sve "," u ".", jel pametno exportati tablicu, otvoriti je u npr Excelu i napraviti Replace "*,**" with "*.**"?
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 13:56 sri, 1. 2. 2012 Naslov: |
|
|
[quote="Saf"]E sad, s obzirom da u istoj tablici imam u meta_key stupcu i numeričke i tekstualne unose, a trebam sortirati samo numeričke vrijednosti, što bi se dogodilo kada bi cijeli taj stupc definirao kao [b]decimal[/b]? Što bi se dogodilo sa tekstualnim unosima u tom slučaju? Jel bi ostao kakav je ili bi se dogodio neki NaN?[/quote]
Sigurno ne bi ostali podaci (za pocetak, bilo bi premalo memorije za text, jer je [tt]decimal[/tt] poprilicno mala stvar).
[quote="Saf"]I dalje mi nije jasno, a googlam već 5 dana jel ima ikakve veze dali je broj spremljen kao 10,99 ili 10.99?[/quote]
Ima. Razlika je kako ga cast-a: [tt]"10,99"+0[/tt] = 10, [tt]"10.99"+0[/tt] = 10.99.
[quote="Saf"]Edit: općenito me užasno muči korištenje "," i "." na računalu. Naime, nevjerojatno mi je da neki alati (npr. OpenOffice Table, OpenOffice Database, Excel, pa čak i built in MS Calculator) po defaultu koriste "," u decimalnim brojevima, a s druge strane alati kao wolframalpha koriste "."[/quote]
WolframAlpha je matematicki software i on koristi matematicku notaciju. Ostali ovise o drzavnim postavkama, a u hrvatskoj je to zarez kao decimalni separator i tocka kao separator tisucica.
[quote="Saf"]Ako ću trebati mijenjati sve "," u ".", jel pametno exportati tablicu, otvoriti je u npr Excelu i napraviti Replace "*,**" with "*.**"?[/quote]
Mislim da ne. Napravi [tt]replace(...)+0[/tt] i sortiraj po tome. Tektovi ce ti se sortirati kao broj 0, a brojevi kud vec spadaju.
Ako to cesto radis, mozda ne bi bilo lose dodati [tt]decimal[/tt] stupac i u njega trpati konvertirane brojeve, pa po tome sortirati. Samo, onda pazi da ti podaci stalno budu konzistentni.
Saf (napisa): | E sad, s obzirom da u istoj tablici imam u meta_key stupcu i numeričke i tekstualne unose, a trebam sortirati samo numeričke vrijednosti, što bi se dogodilo kada bi cijeli taj stupc definirao kao decimal? Što bi se dogodilo sa tekstualnim unosima u tom slučaju? Jel bi ostao kakav je ili bi se dogodio neki NaN? |
Sigurno ne bi ostali podaci (za pocetak, bilo bi premalo memorije za text, jer je decimal poprilicno mala stvar).
Saf (napisa): | I dalje mi nije jasno, a googlam već 5 dana jel ima ikakve veze dali je broj spremljen kao 10,99 ili 10.99? |
Ima. Razlika je kako ga cast-a: "10,99"+0 = 10, "10.99"+0 = 10.99.
Saf (napisa): | Edit: općenito me užasno muči korištenje "," i "." na računalu. Naime, nevjerojatno mi je da neki alati (npr. OpenOffice Table, OpenOffice Database, Excel, pa čak i built in MS Calculator) po defaultu koriste "," u decimalnim brojevima, a s druge strane alati kao wolframalpha koriste "." |
WolframAlpha je matematicki software i on koristi matematicku notaciju. Ostali ovise o drzavnim postavkama, a u hrvatskoj je to zarez kao decimalni separator i tocka kao separator tisucica.
Saf (napisa): | Ako ću trebati mijenjati sve "," u ".", jel pametno exportati tablicu, otvoriti je u npr Excelu i napraviti Replace "*,**" with "*.**"? |
Mislim da ne. Napravi replace(...)+0 i sortiraj po tome. Tektovi ce ti se sortirati kao broj 0, a brojevi kud vec spadaju.
Ako to cesto radis, mozda ne bi bilo lose dodati decimal stupac i u njega trpati konvertirane brojeve, pa po tome sortirati. Samo, onda pazi da ti podaci stalno budu konzistentni.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
Saf Forumski umjetnik
Pridružen/a: 10. 06. 2005. (21:55:28) Postovi: (1B0)16
Spol:
Lokacija: Zagreb
|
|
[Vrh] |
|
|