Php 匹配不同顺序单词的SQL Where语句

Php 匹配不同顺序单词的SQL Where语句,php,mysql,sql,where-clause,Php,Mysql,Sql,Where Clause,我有以下mysql代码: SELECT * FROM top_movies WHERE genre LIKE '%$genre%' $GREEP是一个字符串,如“喜剧戏剧” 数据库中的类型栏有字符串,如喜剧戏剧 如果$类型是喜剧戏剧,它将与喜剧戏剧相匹配。 但我也希望它能与戏剧喜剧相匹配 我怎样才能做到这一点 谢谢 注意:$GREEP是一个动态变量,我不知道它包含多少单词,以什么顺序,或者它包含哪些单词 注2:我使用的是PHP,因此欢迎使用PHP进行任何操作。在PHP中,您应该将类型拆分为单

我有以下mysql代码:

SELECT * FROM top_movies WHERE genre LIKE '%$genre%' 
$GREEP是一个字符串,如“喜剧戏剧”

数据库中的类型栏有字符串,如喜剧戏剧

如果$类型是喜剧戏剧,它将与喜剧戏剧相匹配。 但我也希望它能与戏剧喜剧相匹配

我怎样才能做到这一点

谢谢

注意:$GREEP是一个动态变量,我不知道它包含多少单词,以什么顺序,或者它包含哪些单词


注2:我使用的是PHP,因此欢迎使用PHP进行任何操作。

在PHP中,您应该将类型拆分为单词

$genre=explode($genre,”)

$GREEP变为和数组,每个元素包含一个单词

你应该做什么

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

通过这种方式,它将搜索流派中的每个单独元素,无论其顺序如何。在php中,您应该将流派拆分为单词

$genre=explode($genre,”)

$GREEP变为和数组,每个元素包含一个单词

你应该做什么

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

通过这种方式,它会搜索流派中的每个单独元素,无论其顺序如何

最好的方法是重新构造表,使其成为多对多关系,因为电影可以有多个流派,同时流派属于多个电影。通过这种方式,您可以轻松搜索流派。最好的方法是重新构造表,使其成为多对多关系,因为电影可以有多个流派,同时流派属于多个电影。这样,您就可以轻松地搜索流派。