[ gogi100 @ 01.11.2007. 21:47 ] @
imam na serveru mysql bazu sa jednom tabelom. Imam mali programcic koji vrsi transfer podataka u tu bazu. Polja u toj tabeli su ime, prezime, ulica, broj, broj telefona. Utvrdio sam da je ova tabela presiroka dakle sadrzi i podatke koji mi nisu potrebni,kao na primer lica bez telefona. Dakle meni su potrebna samo lica sa telefonima. Inace podaci u bazu se stalno azuriraju tim malim programcicem za transfer. Dakle pitanje je sta uciniti da bih imao samo tabelu koja sadrzi lica sa brojevima telefona? Dali se moze u mysql praviti nova tabela pa iz stare izvuci samo lica koja imaju brojeve telefona.Moze mali primer? Inace ova baza se koristi samo za pretragu preko forme i php-a
Hvala
[ vilyu @ 03.11.2007. 09:39 ] @
Prvo sto mi je palo na pamet je da ces, tokom koriscenja baze, doci u situaciju da i licima bez telefona uneses broj, pa onda nece biti potrebe za razdvajanjem tih podataka. No, ako ipak zelis da nastavis, sintaksa bi otprilike glasila:

INSERT INTO nova_tabela (ime, prezime, ulica, broj, broj_telefona)
SELECT ime, prezime, ulica, broj, broj_telefona FROM stara_tabela
WHERE broj_telefona IS NOT NULL

E sad, uslov da je broj razlicit od NULL mozes da koristis samo ako ti je to polje u bazi zaista NULL za redove koji nemaju broj. U suprotnom mozes da koristis recimo WHERE LENGTH(broj_telefona) > 5, ili sl.
[ Cpu x9 @ 03.11.2007. 17:26 ] @
Zasto duplati bazu podataka bezveze? Mozda bi bilo bolje da jednostavno napravis da prilikom vadenja iz baze podataka vadi samo one redove koji imaju broj telefona. To mozes ovako:


SELECT * FROM stara_tabela WHERE broj_telefona != ''


i sada samo dodas sta zelis pretrazivat npr.


SELECT * FROM stara_tabela WHERE broj_telefona != '' AND ime LIKE '%jure%'