2012-09-28 32 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 

这它不管顺序如何搜索每个单独的元素