Kom ihåg mig?
Home Menu

Menu


behöver lite hjälp med en mysql stats

Ämnesverktyg Visningsalternativ
Oläst 2012-08-06, 13:03 #1
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Standard behöver lite hjälp med en mysql stats

DELETE FROM Login WHERE NOT IN (SELECT * FROM Login ORDER BY timeOfLogin DESC LIMIT 3)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN (SELECT * FROM Login ORDER BY timeOfLogin DESC LIMIT 3)' at line 1

det jag vill göra, är att radera alla poster som INTE finns med i
"SELECT * FROM Login ORDER BY timeOfLogin DESC LIMIT 3"
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-08-06, 13:18 #2
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Tror du missade WHERE id, och prova med NOT EXISTS: http://stackoverflow.com/questions/1...xpected-result
Eventuellt måste du också skriva WHERE a.id = b.id enligt nedan.

Kod:
DELETE FROM login a WHERE id NOT EXISTS (
   SELECT b.id FROM login b
   WHERE a.id = b.id
   ORDER BY b.timeoflogin DESC LIMIT 3
)

Senast redigerad av Timofey den 2012-08-06 klockan 13:23
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-08-06, 13:57 #3
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av naak2803 Visa inlägg
DELETE FROM Login WHERE NOT IN (SELECT * FROM Login ORDER BY timeOfLogin DESC LIMIT 3)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN (SELECT * FROM Login ORDER BY timeOfLogin DESC LIMIT 3)' at line 1

det jag vill göra, är att radera alla poster som INTE finns med i
"SELECT * FROM Login ORDER BY timeOfLogin DESC LIMIT 3"
Det finns flera fel:
1) För att kunna köra denna typen av subquery så måste du specificera kolumnnamnet i subqueryn. Ex:
Kod:
SELECT * FROM tabell WHERE id NOT IN (SELECT tabell_id FROM tabell2)
2) Du joinar tabellen med sig själv, det skall du inte behöva. Följande skall räcka:
Kod:
DELETE FROM Login ORDER BY timeOfLogin DESC LIMIT 3
3) Att ta bort de tre senaste inloggningarna är konstigt, du borde se över din informationsmodell :-)
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-08-06, 19:28 #4
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Citat:
Ursprungligen postat av coredev Visa inlägg
3) Att ta bort de tre senaste inloggningarna är konstigt, du borde se över din informationsmodell :-)
Han ville ju radera alla förutom de 3 sista.
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-08-06, 22:31 #5
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av Timofey Visa inlägg
Han ville ju radera alla förutom de 3 sista.
Haha ja där ser man :-)
coredev är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 06:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017