Q: MySql query optimization Here you have a screenshot from my table structure:

On my site I have two fields for the search, one for the city (ort) and one for industry (branche).
If I search for: Frankfurt verschierung, let's say that in the field for city I have: Frankfurt and in the field for industry (branche) I have verschierung it doesn't return any results, and I have the data in my database, here you have a screen-cap from the data: 

And here you have my sql query:
$do = $this->select("*, MATCH(`ort`) AGAINST ('{$plz}') AS score")
           ->where('MATCH(`branche`) AGAINST( ? IN BOOLEAN MODE)', $branche)
           ->order('premium DESC, score');

Any solutions?
Update:
$do = $this->select("*,MATCH(`branche`,`ort`) AGAINST ('".$branche." ".$plz."') AS score")
    ->where('MATCH(`branche`,`ort`) AGAINST( ? IN BOOLEAN MODE)', $branche.' '.$plz)
    ->order('premium DESC, score');

Now if I search for the SAME terms, I get some results, BUT it doesn't display it correctly, here you have a picture from the search results: 

Only the FIRST result is corect what about the others? Why are they there?

A: I managed to solve this using:
$do = $this->select()
           ->where("`ort` LIKE ?",'%'.mysql_escape_string($plz).'%')
           ->where("`branche` LIKE ?",'%'.mysql_escape_string($branche).'%')
           ->order("premium DESC");

