2013-08-24 145 views
2

類似的帖子,我有一個消息劇本,我想從數據庫我怎樣才能從數據庫

任何幫助,得到類似的消息

我有這個

table => news 
fields => id, title, news 

,我用這個代碼

$select = $mysqli->query("SELECT * from news WHERE title LIKE '%$title%' LIMIT 4 "); 
$num = $select->num_rows; 
while ($rows = $select->fetch_array(MYSQL_ASSOC)){ 
$id_news  = $rows ['id']; 
$title_news  = $rows ['title']; 
$news_news  = $rows ['news']; 

echo '<a href="'.$id_news.'">'.$title_news.'</a>'; 

} 

但我認爲這對於搜索和我沒有得到預期的結果

任何其他代碼從數據庫中獲取類似的新聞

感謝

+1

請定義類似的用法。你的意思是相同的話嗎?如果是這樣,多少?他們是否需要完全相同的單詞(例如複數等)?你是否指同一主題?在定義相似的含義時,請儘可能清楚。 – Technoh

+0

@Technoh是的,我的意思是相同的主題 –

回答

1

這是很難回答,因爲我們不知道什麼是「相似的」對你意味着什麼,但你可能想看看MySQL Full-Text Search Functions

+0

我的意思是相同的主題 –

+1

如果你的意思是**相同**,那麼你甚至不需要'%',你已經有了正確的查詢。如果你實際上不是指**相同**,請詳細說明。 – Langdi

0

據我所知,沒有快速,明確的方法來做到這一點。您要求提供全文關鍵字或語義搜索,這是一個非常先進的主題。有完整的搜索服務器完全是爲此目的而設計的(Sphinx - http://sphinxsearch.com/ - 是第一個想到的)。

在我看來,你有兩個選擇:

  1. 切換到搜索服務器,像獅身人面像,並使用該技術。這超出了這個問題的範圍。
  2. 轉換您的數據庫模式,我將在下面解釋。

對於選項#2,例如,您可以添加一個keywords表併爲每篇文章插入關鍵字。然後,在搜索時,您可以使用關鍵字查找任何文章,並查找具有相同關鍵字的文章。