0

我有以下mysql代码:

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

$genre 是一个字符串,例如 'Comedy Drama'

数据库中的流派列有喜剧戏剧等字符串。

如果 $genre 是 Comedy Drama,它将匹配 Comedy Drama。但我也希望它与戏剧喜剧相匹配。

我怎样才能做到这一点?

谢谢。

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

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

4

1 回答 1

3

在 php 中,您应该将流派拆分为单词

$genre = explode($genre," ")

并且 $genre 变成和数组,每个元素包含一个单词

你应该做的广告

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

这样,无论顺序如何,它都会搜索流派中的每个单独元素

于 2012-09-28T17:10:54.153 回答