/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL: sletning af rækker
Fra : Daniel Jacobsen


Dato : 09-11-02 05:57

Hejsa!

Jeg bruger nu MySQL version 4-et-eller-andet, som kan slette rækker fra
flere tabeller samtidig og ved DELETE lave opslag i flere tabeller.
Det jeg gerne vil er, at slette nogle rækker fra én tabel, som IKKE findes i
en anden tabel - som følge:

DELETE FROM Event USING Event AS E, Contains AS C WHERE C.time != E.time;

Om der står != , <> eller = er ligemeget, ALLE rækker fra Event bliver
slettet :(


Hvordan får jeg det her til at virke???

Mvh. Daniel J.



 
 
Lars Kongshøj (09-11-2002)
Kommentar
Fra : Lars Kongshøj


Dato : 09-11-02 10:46

Daniel Jacobsen wrote:
> Jeg bruger nu MySQL version 4-et-eller-andet, som kan slette rækker fra
> flere tabeller samtidig og ved DELETE lave opslag i flere tabeller.
> Det jeg gerne vil er, at slette nogle rækker fra én tabel, som IKKE findes i
> en anden tabel - som følge:
> DELETE FROM Event USING Event AS E, Contains AS C WHERE C.time != E.time;
> Om der står != , <> eller = er ligemeget, ALLE rækker fra Event bliver
> slettet :(

Klart. For enhver række i E vil der nok findes en række i C med en anden
værdi af time.

> Hvordan får jeg det her til at virke???

MySQL implementerer vist ikke "where not exists". Det kan være, at der
er nogle MySQL-hajer, der har en ide til hvordan det bedst kan
omskrives.

En måde kunne være at lave et ekstra felt i E, som angiver om om værdien
af time findes i C. Så kan du starte med at sætte det til 0, lave en
update til 1, hvor værdien findes i C, og derefter fyre en delete af.

--
Lars Kongshøj

Daniel Jacobsen (09-11-2002)
Kommentar
Fra : Daniel Jacobsen


Dato : 09-11-02 22:10

Jeg fik fra andet sted følgende løsning:

DELETE FROM Event USING Event LEFT JOIN Contains ON Event.time=Contains.time
WHERE Contains.time IS NUL

Og det virker :)

Mvh. Daniel J.



Kim Schulz (09-11-2002)
Kommentar
Fra : Kim Schulz


Dato : 09-11-02 13:10

On Sat, 9 Nov 2002 13:09:48 -0800
"Daniel Jacobsen" <dj@g-a-f.dk> wrote:
> Jeg fik fra andet sted følgende løsning:
>
> DELETE FROM Event USING Event LEFT JOIN Contains ON
> Event.time=Contains.time WHERE Contains.time IS NUL
>
> Og det virker :)

burdte der ikke stå NULL i stedet for NUL ?

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste