php mysql关键字查询_使用php mysql进行关键字搜索?
我的mysql表中有title(varchar)、description(text)、keywords(varchar)字段。
我保留關鍵字字段,因為我以為我只在這個字段中搜索。但我現在需要在這三個領域中進行搜索。因此,對于關鍵字“word1 word2 word3”,我的查詢將變為
SELECT * FROM myTable
WHERE (
name LIKE '%word1%' OR description LIKE '%word1%' OR keywords LIKE '%word1%'
OR name LIKE '%word2%' OR description LIKE '%word2%' OR keywords LIKE '%word2%'
OR name LIKE '%word3%' OR description LIKE '%word3%' OR keywords LIKE '%word3%')
AND status = 'live'
看起來有點亂,但這很管用。但現在我需要實現同義詞搜索。所以對于一個給定的詞,假設有幾個同義詞可用,當我循環遍歷所有的詞時,這個查詢會變得更加混亂。隨著需求越來越清楚,我還需要將這個mytable加入到其他一些表中。
所以
您認為上述方法是混亂的,并且會隨著數據的增長而引起問題嗎?
我怎樣才能避免上面的混亂呢?有什么更清潔的解決方案我可以過去嗎?任何例子都會幫助我。
你能向我推薦其他的方法嗎?
以謝
編輯
@PeterStuifzand建議我創建一個搜索索引表,并存儲所有3個字段(標題、關鍵字、描述)的相關信息,然后進行全文搜索。我理解,另外,這個表還將包含對mytable主鍵的引用。
但我的高級搜索可能包括將myTable與類別表、地理位置表(用于10英里、20英里等范圍內的搜索)、按其他條件過濾,當然還有搜索結果的排序。你認為使用mysql全文不會減慢速度嗎?
總結
以上是生活随笔為你收集整理的php mysql关键字查询_使用php mysql进行关键字搜索?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Datalogic 得利捷推出超级灵活且
- 下一篇: 软件测试mysql面试题及答案_软件测试