[英]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.