排序MYSQL全文搜尋結果的相關性方法
P粉938936304
P粉938936304 2023-08-24 12:03:52
0
2
539
<p>我對MYSQL相對較新,有一個問題困擾了我一段時間。我嘗試在各個地方搜尋答案,但是還沒有找到可接受的解決方案。 </p> <p>這是我目前運行的查詢,用於找到給定搜尋字詞的最佳匹配:</p> <pre class="brush:php;toolbar:false;">$query="SELECT * 從 `vocabulary` WHERE translation = 'word' OR translation LIKE '%word%'";</pre> <p>它傳回的結果是全面的,包括所有相關的行。然而,它們沒有按照任何特定的順序排序,我希望在PHP中列印結果時,首先顯示完全匹配的結果。像這樣:</p> <hr /> <p>1 | word <-完全符合</p><p> 2 | crossword <-按字母順序排序的部分匹配 /</p><p> 3 | words</p><p> 4 | wordsmith</p> <hr /> <p>非常感謝您提前的幫忙。 </p> <p>-macspacejunkie</p>
P粉938936304
P粉938936304

全部回覆(2)
P粉090087228

LIKE不是全文搜尋。在全文搜尋中,MATCH(...) AGAINST(...)傳回一個可以近似表示相關性的匹配分數。

P粉039633152
SELECT * from vocabulary 
WHERE translation like 'word'  
union all
SELECT * from vocabulary 
WHERE translation LIKE '%word%' and translation not like 'word'

將會先列出精確比對

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!