簡體   English   中英

MySQL查詢優化

[英]MySql query optimization

這里有我表結構的屏幕截圖:

替代文字

在我的網站上,我有兩個搜索字段,一個用於城市( ort ),一個用於工業( branche )。

如果我搜索: Frankfurt verschierung ,就說在城市領域中,我有: Frankfurt和在工業領域中( branche ),我有verschierung,它不返回任何結果,並且我的數據存儲在這里您從數據中獲得了成功:

替代文字

這里有我的SQL查詢:

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

有什么辦法嗎?

更新:

$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');

現在,如果我搜索SAME術語,則會得到一些結果,但是它無法正確顯示,這是搜索結果中的圖片:

替代文字

只有最重要的結果才是核心。 他們為什么在那里?

我設法解決此問題:

$do = $this->select()
           ->where("`ort` LIKE ?",'%'.mysql_escape_string($plz).'%')
           ->where("`branche` LIKE ?",'%'.mysql_escape_string($branche).'%')
           ->order("premium DESC");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM