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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Simpel (My)SQL Delete statement virker ikk~
Fra : Thomas Schulz


Dato : 03-05-02 18:25

Jeg har spurgt på:
*alt.php.sql
*dk.edb.databaser
Men der var ikke nogen der kunne hjælpe.



Hvad skal jeg gøre for:

* Slette records fra tabel "accountsall"
* Records jeg vil have slettet afhænger af data fra følgende 2 tabeller:
"accountsall", "accountstoactivate".

--
Her er det der afgører hvilke records jeg ønsker slettet:
"
WHERE accountsall.AccountID = accountstoactivate.AccountID
AND accountstoactivate.Stamp < Now() - INTERVAL 48 HOUR
"


Jeg vil helst have et svar der relaterer sig til MySql 3.x men ellers 4.x.
(jeg tror Viborgnet bruger 3.x, så det skal meget helst være 3.x).
MySql 3.x understøtter ikke subselects, og den sql-syntaks jeg først prøvede
er først understøttet i 4.x




Regards
Thomas




 
 
Thomas Lindgaard (03-05-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 03-05-02 21:50

Davs

> Her er det der afgører hvilke records jeg ønsker slettet:
> "
> WHERE accountsall.AccountID = accountstoactivate.AccountID
> AND accountstoactivate.Stamp < Now() - INTERVAL 48 HOUR
> "
> Jeg vil helst have et svar der relaterer sig til MySql 3.x men ellers 4.x.
> (jeg tror Viborgnet bruger 3.x, så det skal meget helst være 3.x).
> MySql 3.x understøtter ikke subselects, og den sql-syntaks jeg først
prøvede
> er først understøttet i 4.x

Hvad med noget i følgende retning så:

// Hent ID'er fra accountstoactivate
$result = mysql_query("SELECT AccountID FROM accountstoactivate WHERE Stamp
< Now() - INTERVAL 48 HOUR");
$id_array = mysql_fetch_array($result);

// Slet fra accountsall
$mysql_query("DELETE FROM accountsall WHERE AccountID = ".implode(" OR
AccountID = ", $id_array));

Det er da i hvert fald to simple SQL'er som burde virke overalt :)

Mvh.
/Thomas



Thomas Schulz (03-05-2002)
Kommentar
Fra : Thomas Schulz


Dato : 03-05-02 22:47

> Hvad med noget i følgende retning så:
>
> // Hent ID'er fra accountstoactivate
> $result = mysql_query("SELECT AccountID FROM accountstoactivate WHERE
Stamp
> < Now() - INTERVAL 48 HOUR");
> $id_array = mysql_fetch_array($result);
>
> // Slet fra accountsall
> $mysql_query("DELETE FROM accountsall WHERE AccountID = ".implode(" OR
> AccountID = ", $id_array));
>
> Det er da i hvert fald to simple SQL'er som burde virke overalt :)


Jeg takker meget for det. Jeg har søgt (google, manual), spurgt, gættet etc.
efter en MySql 3.x løsning i 4 dage. Eksisterer ikke tror jeg.
Jeg siger mange tak. Jeg vil bruge dit (og så slå korset tegn i bar undren
over hvorfor MySql ikke kan forstå lidt mere SQL).


Thomas




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

Månedens bedste
Årets bedste
Sidste års bedste