Php 如何使用只返回具有特定字段值的行的MATCH-country方法搜索MySQL数据库?
我有一个MySQL表,其中一个字段是“category”,其值包括文章、研究、引用等。对于搜索表单,我有与这些类别对应的复选框,供用户选择要搜索的类别(如果不是全部) 现在,下面的代码片段可以不加区别地搜索整个表(即,从带有“category”的行中搜索,包括文章、研究、引用等。但是,我如何更改以下内容,以便如果一个人只选择“articles”,则查询将只返回具有“category”字段的行有相应的值吗Php 如何使用只返回具有特定字段值的行的MATCH-country方法搜索MySQL数据库?,php,mysql,search,match,Php,Mysql,Search,Match,我有一个MySQL表,其中一个字段是“category”,其值包括文章、研究、引用等。对于搜索表单,我有与这些类别对应的复选框,供用户选择要搜索的类别(如果不是全部) 现在,下面的代码片段可以不加区别地搜索整个表(即,从带有“category”的行中搜索,包括文章、研究、引用等。但是,我如何更改以下内容,以便如果一个人只选择“articles”,则查询将只返回具有“category”字段的行有相应的值吗 $category = $_GET["category"]; $query = "User-
$category = $_GET["category"];
$query = "User-submitted query";
$search = mysql_query("SELECT title,body,
MATCH(title, body)
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)");
我尝试在上面的中添加category='$category'
($category在本例中是“Articles”),但没有成功
顺便说一句:我知道mysql/mysqli和安全用户输入问题。您会反对使用子查询吗
SELECT title,body
FROM(
SELECT title,body,category
MATCH(title, body)
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)
) x
WHERE category = '$category'
我解决了这个问题。以下方法有效:
$category = $_GET["category"];
$query = "User-submitted query";
$search = mysql_query("SELECT title,body,
MATCH(title, body)
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)
AND category = '$category'");