---
title: "Flera söktermer och MATCH AGAINST"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/191045-flera-söktermer-och-match-against"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "prplxr"
published: "2013-01-09T08:50:57.000Z"
updated: "2013-01-09T09:29:07.000Z"
replies: 1
views: 673
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/191045-flera-söktermer-och-match-against"
---

# Flera söktermer och MATCH AGAINST

## #1 — prplxr, 2013-01-09T08:50Z

Hejsan, svejsan!

Sitter med en SQL-fråga som ska hämta ut data om företag utifrån två inputs, ett frisök och ett geografiskt. Jag vill nu matcha dessa mot ett fulltext-index. Vardera sökterm ska matchas mot varsitt fält och sedan ska resultatet sorteras efter relevans. Är detta genomförbart?

Den kod jag kommit fram till än så länge (som inte fungerar) är:

```php
$keywords = @$_GET['what'];
$location = @$_GET['where'];
$query = $conn->Prepare("
	SELECT *, 
	MATCH(foretag) AGAINST(:keywords) AS kr,
	MATCH(stad) AGAINST(:location) AS lr
	FROM tblforetag 
	WHERE MATCH(foretag) AGAINST(:keywords)
	OR MATCH(stad) AGAINST(:location)
	");
$query->BindValue(':keywords', $keywords);
$query->BindValue(':location', $location);
$query->Execute();
```

Detta ger alltid noll resultat. Hur går jag vidare med detta? Förslag?

Mvh

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

## #2 — prplxr, 2013-01-09T09:29Z

Jag prövar nu med följande kod:

```php
$keywords = @$_GET['what'];
$location = @$_GET['where'];
$locisset = $location != "" ? TRUE : FALSE;
$sql = "
	SELECT *, 
	MATCH(foretag) AGAINST(:keywords) AS kr
	FROM tblforetag 
	WHERE MATCH(foretag) AGAINST(:keywords)
	";
$sql .= $locisset ? "AND stad LIKE :location" : "";
$query = $conn->Prepare($sql);
$query->BindValue(':keywords', $keywords);
if($locisset) $query->BindValue(':location', "%$location%");
$query->Execute();
```

Det verkar fungera, men jag återkommer om det uppstår problem igen, var så säkra. ;-)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/191045-flera-söktermer-och-match-against
