Permalänk
Medlem

[SQL] where not ?

Hejsan alla!

Jag har en SQL fråga som plockar slumpmässigt ut en användare som har status lika med 1, samt points mer eller lika med 3, problemet är att den ibland slumpar ut användaren själv (Vilket den inte skall göra).

SELECT * FROM members WHERE status='1' AND points >='3' ORDER BY RAND() LIMIT 1

Kan man köra något sånt här? Visst kunde man det!

SELECT * FROM members WHERE status='1' AND points >'3' AND username NOT LIKE '$user' ORDER BY RAND() LIMIT 1

Permalänk

du behöver inte använda like. Du kan skriva username != '$user'

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Om du ska utesluta användaren med exakt det användanamnet bör du inte använda LIKE. Jag antar att status och points är sparade som heltal också, då kan du ta bort apostroferna. Dessutom tog du bara med de som hade points mer än 3.

SELECT * FROM members WHERE status = 1 AND points >= 3 AND username <> '$user' ORDER BY RAND() LIMIT 1

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Garret
Om du ska utesluta användaren med exakt det användanamnet bör du inte använda LIKE. Jag antar att status och points är sparade som heltal också, då kan du ta bort apostroferna. Dessutom tog du bara med de som hade points mer än 3.

SELECT * FROM members WHERE status = 1 AND points >= 3 AND username <> '$user' ORDER BY RAND() LIMIT 1

Frågan är om det spelar någon större roll idag. Jag vill tro att de uppdaterade och stora databashanterarna optimerar frågan om det går. T.ex. att den tar bort LIKE om det inte finns någon anledning att ha LIKE. Jag har visserligen inte något underlag för det här, bara en vild gissning

Någon som har provat kanske?