Question: This is my current query

```
WHERE Keywords.Word = '$search'

```

But this only works if `$search` is one word, if its two or three words then it won't find anything as my keywords table words field only has one word per record.

Whats the quickest way to do this ?

Answer: 
Depends on your programming language, split the search term into an array, and use the `IN` clause :

```
WHERE Keywords.Word IN ('$search[0]','$search[1]',...)

```
I would create virtual table based on the search condition, on join against the tables column.

Something like

```
SELECT *
FROM   table t 
       LEFT JOIN (SELECT 'term1' AS name 
             UNION 
             SELECT 'term2' AS name 
             UNION 
             SELECT 'term3' AS name)  f
         ON f.name = w.Word 
WHERE  (f.name IS NOT NULL)
GROUP by t.id

```

In this case you would dynamically construct the virtual table values as static hardcoded values (term1,2,3), and you need to add indexes on the following columns

1. (Word)
2. assuming you have primary key `id`