webForumDet fria alternativet
Logga in / Bli medlem

Case

Databaser & SQL

4 svar · 359 visningar · startad av U2K

Medlem sedan jan. 2000224 inlägg
Trådstart#1

Varför fungerar inte detta.. Får enbart null.. Är ny på hur det går till med CASE och variabler.. någon som har en lösning?

SELECT M.omgang, case when R.hemma > R.borta then @tips = '1' when R.hemma < R.borta then @tips = '2' else @tips = 'X' end
FROM `k_matcher` AS M
LEFT JOIN k_resultat AS R ON R.match_id =
M.match_id
WHERE M.ser_id =5 and (M.home_id = 5 or M.away_id = 5)

Medlem sedan dec. 200012 464 inlägg
#2

Vad vill du åstadkomma?

@tips = '1'

är detta tänkt som en variabeltilldelning?

Medlem sedan jan. 2000224 inlägg
#3

Ja det var tänkt så. Jag vill helt enkelt åstakomma en lista som ser ut som följer.

Omgång Tips
1 X
2 2
3 1
4 1
...

Medlem sedan dec. 200012 464 inlägg
#4
SELECT M.omgang, case 
when R.hemma > R.borta then  '1' 
when R.hemma < R.borta then  '2'
when R.hemma = R.borta then 'X' 
  else '?' end as tips
FROM  k_matcher AS M
LEFT JOIN k_resultat AS R ON R.match_id =
M.match_id
WHERE M.ser_id =5 
and  5 in (M.home_id,M.away_id)

Om det inte finns något resultat för en match, vad vill du då skall hända?

Medlem sedan jan. 2000224 inlägg
#5

Hmm

Om det inte finns något resultat skall det helt enkelt bara bli ett streck (-) i tips tabellen. Tack för koden. ska kolla närmare på den nu.

249 ms totalt · 4 externa anrop · v20260731065814-full.81e7e81c
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)