[ cronewbie @ 29.09.2007. 08:12 ] @
Imam neke brojeve u koloni Vrijednost koji su duzine 5 znakova. Ja zelim pronaći sve brojeve koji mi počinju s 0 ili s 00, kako to mogu uraditi u samom sql-u?
[ Predrag Supurovic @ 29.09.2007. 08:26 ] @
Ako je to polje karakter tipa (a samo tako mogu da ostanu nule ispred broja) onda poredi kao i svaki drugi string.
[ cronewbie @ 29.09.2007. 08:33 ] @
Meni ustvari treba da saznam sve zapise koji pocinju s 0 ili 00 i napravim na te vrijednosti UPDATE tako da mi ostane vrijednost bez tih nula.

Npr ako imam 01234 da mi napravim UPDATE kad mi makne nulu i ostane samo 1234. Gledam TRIM f-ju u mysql-u pa mi se cini da bi preko nje nesto mogao al ne uspijeva mi iz prve?
[ mb_sa @ 29.09.2007. 09:34 ] @
Ukoliko ti sve ovo treba kako bi podatke prepravio u bazi i neces ovo bas cesto korstiti, ispod rješenje bi ti trebalo zadovoljiti!

Code:

UPDATE tabela SET broj = SUBSTRING(broj,2) WHERE broj LIKE '0%';
UPDATE tabela SET broj = SUBSTRING(broj,3) WHERE broj LIKE '00%';
[ Predrag Supurovic @ 29.09.2007. 09:45 ] @
Ako to radis jednokratno onda prosto mozes da svaki podatak pretvoris su numerik pa onda opet u string i upises u polje. Tako ne moras nista da parsiras. Dodatno mozes da filtriras slogove kojima je prvi karakter '0'.

Medjutim ako je to kolona vrednost i ti brijevi su zaist aprobjevi, promeni tip u numerik, gde ce onda taj broj zaista biti broj i samim tim nece ni imati vodece nule.
[ cronewbie @ 01.10.2007. 22:42 ] @
Ovo sa SUBSRTING-om je uspjelo i to je ono što sam htjeo. Hvala!

Ostao mi je još posljednji zadatak, a taj je da svim brojevima koji su dugi 3 ili 4 znaka nadodam još nule. Dakle, ako mi je ostalo 1234 tamo da mu još dodam nulu i da je od tada taj broj 12340. Isto tako i za npr. 123 da mi je od sada 12300. Sa SUBSTRINGom mi je jasno kako to napraviti za sve brojeve bez obzira koliko znakova oni imaju ali to ne zelim jer ce mi se onda i one vrijednosti od ranije koje su duze od 3 ili 4 znaka poremetiti pa mi moze broj koji recimo glasi 23456 postati 2345600 a to nikako ne zelim.
[ lukeguy @ 01.10.2007. 23:08 ] @
Pa dodaj onoliko nula koliko ti fali do određene dužine. Npr. ako ti treba ukupno 6 cifara, onda dodaješ 6 - aktuelna dužina. Aktuelnu dužinu dobijaš pomoću funkcije len().
[ cronewbie @ 02.10.2007. 08:45 ] @
Uh, nemam predodzbu kako to uraditi :(
[ 357_97 @ 02.10.2007. 15:42 ] @
Pogledaj sta radi funkicja RPAD...
[ BluesRocker @ 02.10.2007. 17:00 ] @
Code:

UPDATE `tabela` SET broj = CONCAT(broj,'0') WHERE LENGTH(broj) = 4;
UPDATE `tabela` SET broj = CONCAT(broj,'00') WHERE LENGTH(broj) = 3;
UPDATE `tabela` SET broj = CONCAT(broj,'000') WHERE LENGTH(broj) = 2;