我有三張我需要用於搜索,電影,評論和投票的表格。我想爲Movie.Title和Review.Subject使用LIKE函數,並按照每場比賽票數最多的順序排列它們。如何在JOIN和ORDER BY中使用LIKE進行mysql搜索投票表中大多數行/投票數?
在投票表中有一個ReviewID,UserID,IsGood。每次用戶投票時,都會使用MovieID,UserID和1或0對IsGood進行插入,1意味着好的0意味着不好。
所以一個審查可能具有0好的和壞的票,或5好的和差3,等我想顯示以下順序結果:
回顧1 - 10Good/3Bad
評分2 - 4Good/3Bad
評分3 - 0Good/0Bad
匹配頂級票數最高的票數最多,票數最差的票數最多。
這是MySQL查詢我寫了起來,顯然是錯誤的,但希望有人能幫助我:
mysql_query("
SELECT m.Title, r.Subject, v.ReviewID FROM Movies m
LEFT JOIN Reviews r
ON m.ID=r.MovieID
INNER JOIN Votes v
ON r.ID=v.ReviewID
WHERE (m.Title LIKE '%" . $search . "%'
OR r.Subject LIKE '%" . $search . "%')
ORDER BY MAX(COUNT(v.IsGood='1')) LIMIT 10")or die(mysql_error());
你需要做'm.Title,r.Subject,v.TipID'一組,或做選擇,計算獲得的投票數子。 – 2012-01-18 17:30:38
Thx保羅爲您的迴應。你能告訴我一個例子嗎?也許是一個鏈接?我會搜索你剛纔的建議。 – SReca 2012-01-18 17:33:18
嘗試在ORDER BY子句前添加'GROUP BY m.Title,r.Subject,v.TipID',那應該這樣做! – 2012-01-18 17:34:47