---
title: "Sortera sökresultat i mysql"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/158576-sortera-sökresultat-i-mysql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "M@rtin"
published: "2007-03-25T20:27:23.000Z"
updated: "2007-03-25T20:39:35.000Z"
replies: 1
views: 449
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/158576-sortera-sökresultat-i-mysql"
---

# Sortera sökresultat i mysql

## #1 — M@rtin, 2007-03-25T20:27Z

Jag har tidigare använt MATCH() AGAINST() funktionerna i mysql för att göra sökningar men det fungerar ju minst sagt bristfälligt så jag tänkte koda en egen sökalgoritm med hjälp av LIKE kommandot istället.

Problemet blir att jag får massor av kriterier som kan se ut så här:
title LIKE '%test%' OR title LIKE '%annat%' OR title LIKE '%tredje%' 
o.s.v.

Finns det något sätt att sortera ett sådant resultat efter relevans? Det jag skulle vilja ha är alltså någon variabel som räknas upp för varje ord som matchas. Men det kanske inte går? Kan tänka mig att sökningen slutar så fort en OR-sats uppfylls?

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

## #2 — M@rtin, 2007-03-25T20:39Z

Kom på en lösning själv:

```
select title,IF(title LIKE '%test%',1,0)+IF(title LIKE '%annat%',1,0) as
score from tabell where title LIKE '%test%' or title LIKE '%annat%' order by score DESC;
```

Känns lite onödigt att göra dem två gånger, det jag vill göra i WHERE är ju egentligen bara att kolla om score\>0 men det verkar bara gå att använda fält som ingår i tabellen i WHERE. Eller?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/158576-sortera-sökresultat-i-mysql
