Php 匹配不同顺序单词的SQL Where语句
我有以下mysql代码: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中,您应该将类型拆分为单
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
通过这种方式,它会搜索流派中的每个单独元素,无论其顺序如何最好的方法是重新构造表,使其成为多对多关系,因为电影可以有多个流派,同时流派属于多个电影。通过这种方式,您可以轻松搜索流派。最好的方法是重新构造表,使其成为多对多关系,因为电影可以有多个流派,同时流派属于多个电影。这样,您就可以轻松地搜索流派。