---
title: "Användarvariabler i Mysql 4.1 vs 5.0?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/158900-användarvariabler-i-mysql-4-1-vs-5-0"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "M@rtin"
published: "2007-04-03T15:50:24.000Z"
updated: "2007-04-03T16:55:39.000Z"
replies: 6
views: 685
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/158900-användarvariabler-i-mysql-4-1-vs-5-0"
---

# Användarvariabler i Mysql 4.1 vs 5.0?

## #1 — M@rtin, 2007-04-03T15:50Z

Har mysql gjort någon stor förändring vad gäller användarvariabler från version 4.1 till version 5? 

```
SELECT @score,title FROM msgs WHERE (@score:=( IF(title LIKE '%test%',5,0)+ IF(title LIKE '%forum%',5,0)))>0 ORDER BY @score DESC;
```

Denna fungerar utmärkt lokalt på datorn med mysql 5.0 installerat, men fungerar inte på mitt webhotell som kör 4.1. På webbhotellet fungerar det dels inte att selecta @score men det är inte helt nödvändigt, men när den tilldelar @score ett värde verkar den få värdet av enbart IF nummer 2, den första ignoreras.

Någon som har en idé om vad det kan vara för fel? Jag är jätteförvirrad.

Permalänk: https://www.webforum.nu/p/158900

## #2 — LarsG, 2007-04-03T15:58Z

```
SELECT title,score from 
  (select title , 
       case when title like '%test%' then 5 else 0 end +
       case when title like '%forum%' then 5 else 0 end as score
  FROM msgs ) as dt
 where score > 0
ORDER BY score DESC
```

Permalänk: https://www.webforum.nu/p/1956254

## #3 — M@rtin, 2007-04-03T16:16Z

Funkade klocka! Tack så mycket för det snabba svaret!

Finns det någon anledning till att köra den basic-liknande typen av if-sats istället för den jag använde? Testade båda och de verkar inte göra någon skillnad.

Permalänk: https://www.webforum.nu/p/1956259

## #4 — LarsG, 2007-04-03T16:24Z

> basic-liknande typen av if-sats

vad menar du?

Permalänk: https://www.webforum.nu/p/1956264

## #5 — M@rtin, 2007-04-03T16:29Z

```
IF(title LIKE '%forum%',5,0)
```

vs.

```
case when title like '%forum%' then 5 else 0 end
```

Permalänk: https://www.webforum.nu/p/1956266

## #6 — LarsG, 2007-04-03T16:48Z

Jaha, if som du använder den är en funktion, inte en sats. Det var därför jag blev förbryllad. case är standard SQL men inte if. Allt som du kan uttrycka med if går också att uttrycka med case.

Permalänk: https://www.webforum.nu/p/1956270

## #7 — M@rtin, 2007-04-03T16:55Z

Ah okej, då ska jag börja köra case istället.

Permalänk: https://www.webforum.nu/p/1956276

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/158900-användarvariabler-i-mysql-4-1-vs-5-0
