07. juli 2004 - 14:42Der er
14 kommentarer og 3 løsninger
Avanceret delete-sætning
Hej
Jeg vil slette alle de records i CHAT_ONLINE, hvor chatteren er blevet opdateret som værende offline i CHAT_MEMBERS. (CHAT_MEMBERS indeholder en masse statistisk, mens CHAT_ONLINE kun indeholder en tæller, ChannelID og Nick.)
________________________________________________
strSQL="UPDATE CHAT_MEMBERS set Online_now = 'false' where last_online < '" & alternativeDateTime2(DateAdd("n", -30, Now())) & "'" dataConn.execute(strSQL)
strSQL="DELETE FROM CHAT_ONLINE WHERE CHAT_MEMBERS.Online_now = 'false'" dataConn.execute(strSQL)
Update virker fint - det er delete-sætningen, som jeg skal have lidt hjælp til.
CHAT_MEMBERS er login-profilen (og en masse stat), mens CHAT_ONLINE er en tabel, som jeg kun bruger til at tælle, hvor mange der er online på de forskellige chat-kanaler.
CREATE TABLE CHAT_MEMBERS ( ID int(11) NOT NULL auto_increment, Member_ID int(11) NOT NULL default '0', M_Name text NOT NULL, Member_IP text NOT NULL, last_online datetime NOT NULL default '0000-00-00 00:00:00', Online_now text NOT NULL, PRIMARY KEY (ID), KEY ID (ID) ) TYPE=MyISAM;
# # Struktur dump for tabellen `CHAT_ONLINE` #
CREATE TABLE CHAT_ONLINE ( ID int(11) NOT NULL auto_increment, ChannelID int(11) NOT NULL default '0', Nick text NOT NULL, UNIQUE KEY ID (ID) ) TYPE=MyISAM;
strSQL = "SELECT M_NAME FROM CHAT_MEMBERS WHERE Online_now = 'false'" set rs = dataConn.execute(strSQL)
while not (rs.eof or rs.bof) strSQL="DELETE FROM CHAT_ONLINE WHERE NICK = '" & RS("M_NAME") & "'" dataConn.execute(strSQL) rs.movenext wend
Ved godt at det ikke er køn kode, ej heller er den særlig effektiv, men det er lige meget, fordi jeg opgraderer senere den nyeste version af MSSQL. Har hørt at MSSQL har flere funktioner, kører lidt mere stabilt og at den så koster lidt flere penge, har ikke den store betydning.
I MS SQL, MySQL 4.1.x og manga andre databaser kan du bare lave:
DELETE FROM chat_online WHERE id IN (SELECT id FROM chat_members WHERE online_now = 'false')
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.