1
訂購我有兩個表:MySQL的全文搜索,加入和通過兩者相關性和一個整數,使用PHP和PDO
Meta
大約有一個ID的所有信息。Posters
具有由movie_id一個多到一個關係到元(許多海報一部電影,有時)
現在我想創建一個全文檢索使用PHP和PDO準備語句,並返回結果首先是相關性,然後是年份。
所以,如果「測試」進行搜索,反對票
test, 2
test, 1
testy test, 1
test me, 1
lets test, 1
我想「測試,2」以示先其次是第二次測試,那麼最相關的搜索上任何全文認爲是相關的基礎?上面的順序是一個好的開始。
這是我到目前爲止創建
$query = "SELECT Meta.id, Meta.year, Posters.filename, Meta.title,
FROM Meta INNER JOIN Posters ON Meta.id = Posters.movie_id
WHERE MATCH(Meta.title)
AGAINST(:term IN BOOLEAN MODE)
ORDER BY Meta.year DESC
LIMIT 50";
$statement = $this->db->prepare($query);
$statement->bindValue(':term', $term);
$statement->execute();
return $statement->fetchAll(PDO::FETCH_ASSOC);
這只是今年返回它們 - 所有文本相關性是失去了什麼?
我見過其他非常複雜的例子,我很難遵循 - 他們沒有包括任何JOIN,這使得它更加困難。
理想情況下,我想單個查詢。
編輯:澄清,我正在尋找
the girl with the dragon tattoo
結果
nowhere girl
how to train your dragon 2
how to train your dragon
gone girl
(several movies with 'girl' keyword in them)
The girl with the dragon tattoo
通知我其實搜索的電影是怎麼過去的,而「無處女孩」是第一個,因爲它是最近的。
您能否更清楚地知道什麼是返回與您想要返回的內容? –
肯定會把它添加到主要問題 – Dan