2012-09-28 63 views
0

匹配的話言,我有以下MySQL代碼:SQL凡與不同的順序

SELECT * FROM top_movies WHERE genre LIKE '%$genre%' 

$流派是一個字符串,如「喜劇劇情」

和流派列在數據庫中有字符串,例如作爲喜劇劇。

如果$類型是喜劇劇,它將匹配喜劇劇。 但我也希望它匹配戲劇喜劇。

我該如何做到這一點?

謝謝。

注意:$ genre是一個動態變量,我不知道它包含多少個單詞,它以什麼順序或者它有哪些單詞。

注意2:我使用PHP,因此歡迎使用PHP進行任何操作。

+1

最好的辦法是重組你的表格,使它成爲多對多的關係,因爲電影可以有多種風格,同時風格屬於多部電影。這樣,您就可以輕鬆搜索流派。 –

回答

3

在PHP你應該流派分成的話

$genre = explode($genre," ")

和$流派變得和數組,其中包含一個字

廣告的每個元素,你應該做的

$query = "" 
foreach $genre as $element 
{ 
    if (strlen($query) > 1) 
    { 
    $query += "AND " 
    } 
    $query += "genre LIKE %"+$element + "% " 
} 
$query = "SELECT * FROM top_movies WHERE " + $query 

這它不管順序如何搜索每個單獨的元素