ďťż
 
Problem amatora :) ďťż
 
Problem amatora :)
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Problem amatora :)



Marek - 02-04-2007 00:03
Problem amatora :)
  Witam,

mam w bazie tabele w ktorej rekordy maja 10 pol, jak usunac z tabeli
wszystkie rekordy ktore maja 9 i wiecej pol pustych>

z gory dzieki

pozdrawiam

Marek





Marek - 02-04-2007 00:03

  zapomnailem napisac ze w SQLu...




=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 02-04-2007 00:03

  Dnia Sun, 01 Apr 2007 10:24:12 +0200, Marek <fun_site@poczta.USUN.TO.onet.pl>
wklepał(-a):

>Witam,
>
>mam w bazie tabele w ktorej rekordy maja 10 pol, jak usunac z tabeli
>wszystkie rekordy ktore maja 9 i wiecej pol pustych>

W poleceniu DELETE musisz wymienić nazwę pola:

DELETE from tab
WHERE a is null and b is null and ....

Jeśli nie wiesz, gdzie mogą się zdarzyć puste pola, to musisz sobie wygenerować
wszystkie możliwe kombinacje takich DELETE-ów. Co oznacza, że masz jakąś dziwną
strukturę tabeli, skoro kryterium usuwania jest jedynie brak wartości w 9/10
pól. :)
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych




sg - 02-04-2007 00:03

  Sławomir Szyszło wrote:
> Dnia Sun, 01 Apr 2007 10:24:12 +0200, Marek <fun_site@poczta.USUN.TO.onet.pl>
> wklepał(-a):
>
>> Witam,
>>
>> mam w bazie tabele w ktorej rekordy maja 10 pol, jak usunac z tabeli
>> wszystkie rekordy ktore maja 9 i wiecej pol pustych>
>
> W poleceniu DELETE musisz wymienić nazwę pola:
>
> DELETE from tab
> WHERE a is null and b is null and ....
>
> Jeśli nie wiesz, gdzie mogą się zdarzyć puste pola, to musisz sobie wygenerować
> wszystkie możliwe kombinacje takich DELETE-ów. Co oznacza, że masz jakąś dziwną
> strukturę tabeli, skoro kryterium usuwania jest jedynie brak wartości w 9/10
> pól. :)

to zależy... jeśli bazą jest np. postgres to się da łatwiej





Andrzej Dabrowski - 03-04-2007 00:07

 
Uzytkownik "Marek" <fun_site@poczta.USUN.TO.onet.pl> napisal w wiadomosci
news:eunq6v$aol$1@news.onet.pl...
> Witam,
>
> mam w bazie tabele w ktorej rekordy maja 10 pol, jak usunac z tabeli
> wszystkie rekordy ktore maja 9 i wiecej pol pustych>
>
Jesli masz identyfikator to ja bym to zrobil przez tabele tymczasowa,
policzyl nulle (programem) i stworzyl tabele z dwóch kolumn - identyfikator
i liczba nulli. Potem delete warunkowany selectem po drugiej tabeli:

delete from TAB_GLOWNA where IDENTYFIKATOR in (select IDENTYFIKATOR from
TAB_POMOCNICZA where LICZBA_NULLI>=9 )

Samo policzenie nulli w programie jest dosc proste (petla po krotkach
(wierszach) w niej petla po polach danej krotki z licznikiem zwiekszanym
przez IFNULL=true), byc moze zakreconym sqlem tez sie do to zrobic,albo
kombinacja procedur wbudowanych, ale tak bedzie chyba najszybciej
Andrzej Dabrowski




Robert Osowiecki - 03-04-2007 00:07

  Andrzej Dabrowski napisał(a):
> Samo policzenie nulli w programie jest dosc proste (petla po krotkach
> (wierszach) w niej petla po polach danej krotki z licznikiem zwiekszanym
> przez IFNULL=true), byc moze zakreconym sqlem tez sie do to zrobic,albo
> kombinacja procedur wbudowanych, ale tak bedzie chyba najszybciej

Da sie zakręcić takiego SQL-a:
DELETE FROM tabela WHERE
CASE WHEN pole1 IS NULL then 1 else 0 END +
CASE WHEN pole2 is NULL then 1 else 0 END + (...)
CASE WHEN pole10 IS NULL then 1 else 0 END >=9

Ale fakt: trochę dziwne masz te dane, pewnie struktura nie za dobrze
pomyślana.

R.




Andrzej Dąbrowski - 03-04-2007 00:07

 
Użytkownik "Robert Osowiecki" <robson@rassun.art.pl> napisał w wiadomości
news:euqprf$4h1$1@opal.futuro.pl...
> Andrzej Dabrowski napisał(a):
>> Samo policzenie nulli w programie jest dosc proste (petla po krotkach
>> (wierszach) w niej petla po polach danej krotki z licznikiem zwiekszanym
>> przez IFNULL=true), byc moze zakreconym sqlem tez sie do to zrobic,albo
>> kombinacja procedur wbudowanych, ale tak bedzie chyba najszybciej
>
> Da sie zakręcić takiego SQL-a:
> DELETE FROM tabela WHERE
> CASE WHEN pole1 IS NULL then 1 else 0 END +
> CASE WHEN pole2 is NULL then 1 else 0 END + (...)
> CASE WHEN pole10 IS NULL then 1 else 0 END >=9
>
> Ale fakt: trochę dziwne masz te dane, pewnie struktura nie za dobrze
> pomyślana.

No właśnie da się sql-e, zrobić, ale trzeba uważać bo czasem taki
skomplikowany SQL na sporej bazie wykonuje się baaardzo długo i jeśli ma
być to jednorazówka to szybciej wklepać te 10 linii kodu :0
Andrzej Dąbrowski
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • shutter.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com