Verktyg Visningsval
2012-05-06, 21:45   #1

warzo

Medlem

Plats: Finland

Registrerad: nov 2002

En mysql fråga


Hej,
jag har ett problem med en query, som inte hämtar resultatet som jag önskar, är det någon som ser vad som skulle kunna vara fel. Mina värden i tabellen ser ut som följande
userid | username | usergroup | usermem
1 | A | 3 | 1
2 | B | 1,2,3 | 1
3 | C | 3 | 0
4 | D | 2,3 | 0
5 | E | 3,4 | 0
6 | F | 33 | 0

Jag skulle önska att få ut userid 3,4,5 dvs C,D,E

Min query ser ut som följande

select userid, username from tabellen where usermem=0 and usergroup like '3' or usergroup like '%,3' or usergroup like '3,%';

Med denna query får jag som resultat userid 1,3,4,5 (A,C,D,E). Varför kommer A med i denna query?

Är det någon som har en aning?
__________________
Intel C2D E8400 @ 3,6Ghz, 4GB OCZ 800MHz, Geforce GTX460, 60GB SSD+150GB Vraptor
Server: AthlonII X4, 4GB DDR1333, GF 7200GS, 2,5" 500GB 5,4krpm för OS.
warzo är inte uppkopplad
2012-05-06, 21:54   #2

BuruZ

Medlem

Plats: garderoben

Registrerad: feb 2004

Citat:
Ursprungligen inskrivet av warzo Visa inlägg
Hej,
jag har ett problem med en query, som inte hämtar resultatet som jag önskar, är det någon som ser vad som skulle kunna vara fel. Mina värden i tabellen ser ut som följande
userid | username | usergroup | usermem
1 | A | 3 | 1
2 | B | 1,2,3 | 1
3 | C | 3 | 0
4 | D | 2,3 | 0
5 | E | 3,4 | 0
6 | F | 33 | 0

Jag skulle önska att få ut userid 3,4,5 dvs C,D,E

Min query ser ut som följande

select userid, username from tabellen where usermem=0 and usergroup like '3' or usergroup like '%,3' or usergroup like '3,%';

Med denna query får jag som resultat userid 1,3,4,5 (A,C,D,E). Varför kommer A med i denna query?

Är det någon som har en aning?
Av de fetstilta anledningarna, A är med i usergroup 3. Därmed kommer den med.

EDIT: Märkte nu att den låg i usermem 1, kollade lite slarvigt första gången.
Då kanske det inte är som jag skrev.
BuruZ är inte uppkopplad
2012-05-06, 21:56   #3

MaloW

Medlem

MaloWs avatar

Plats: Karlskrona

Registrerad: maj 2009

Du behöver paranteser runt dina and och or för att visa vilka som hänger ihop och hur tror jag.

where usermem=0 and (usergroup like '3' or usergroup like '%,3' or usergroup like '3,%')
where (usermem=0 and usergroup like '3') or usergroup like '%,3' or usergroup like '3,%'

är tex två olika saker. Den första kräver att usermem är 0 och att något av dom andra 3 är uppfyllt Den andra kräver att usermem är 0 och att usergroup är 3, eller att någon av dom andra är sann.
__________________
Intel i5-2500k @ 4.5Ghz - GTX 660TI SLI (EVGA & Asus DC II) - AsRock P67 Extreme4 - Corsair 8GB 1600Mhz - Corsair AX 750w - Crucial M4 128 GB SSD - Sandisk Ultra Pro 256 GB SSD - WD 3TB Red - Silverstone RV02-E - Asus Xonar DS
Mionix Naos 8200 - Steelseries 9HD - Microsoft Sidewinder X4 - Sennheiser HD 555
MaloW är inte uppkopplad
2012-05-06, 23:28   #4

warzo

Medlem

Plats: Finland

Registrerad: nov 2002

Malow: Tackar, det där löste mitt problem!
__________________
Intel C2D E8400 @ 3,6Ghz, 4GB OCZ 800MHz, Geforce GTX460, 60GB SSD+150GB Vraptor
Server: AthlonII X4, 4GB DDR1333, GF 7200GS, 2,5" 500GB 5,4krpm för OS.
warzo är inte uppkopplad
Senaste nyheterna

Redaktionens senaste nyhetsrubriker

Sök jobb