Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql多表全文查询问题?_Php_Mysql_Full Text Search - Fatal编程技术网

Php mysql多表全文查询问题?

Php mysql多表全文查询问题?,php,mysql,full-text-search,Php,Mysql,Full Text Search,我正在进行一个多表全文查询。但是我遇到了一些问题。 我需要做一个类似这样的查询 (SELECT title,content,date,cat FROM article1 WHERE cat='Science fiction' AND MATCH (title,content) AGAINST ('+Harry +Potter' IN BOOLEAN MODE)) UNION (SELECT title,content,date FROM article3 WHERE M

我正在进行一个多表全文查询。但是我遇到了一些问题。 我需要做一个类似这样的查询

(SELECT 
title,content,date,cat 
FROM article1 
WHERE 
cat='Science fiction' 
AND 
MATCH (title,content) 
AGAINST 
('+Harry +Potter' IN BOOLEAN MODE)) 
UNION 
(SELECT 
title,content,date 
FROM article3 
WHERE MATCH (title,content)
 AGAINST 
('+Harry +Potter' IN BOOLEAN MODE)) 
Order By date DESC LIMIT 10
但它导致了
警告:mysql\u fetch\u array():提供的参数不是有效的mysql结果资源

如果我删除了
cat='scientific',并且它可以通过测试

问题在哪里?如果我想做一个我想要的查询:第一个全文查询需要满足
cat='scientific'
。非常感谢。

是否返回FALSE,表示解析查询时出现问题?如果您盲目地将“FALSE”传递到mysql\u fetch\u array(),我希望看到这种错误。

试试看

cat LIKE 'Science fiction' 

您正在尝试合并返回不同列数的结果集。第一个查询返回4列(标题、内容、日期、类别),而第二个查询只返回3列(标题、内容、日期)。每个查询必须返回相同数量的列。

我不知道为什么删除类似猫的“科幻小说”
会使查询工作。如前所述,这两种情况下都不应该起作用
UNION
要求查询的两个部分生成相同数量的具有兼容类型的列。您的
UNION
在第一部分有4列,在第二部分有3列:

SELECT  title, content, date, cat FROM article1  
UNION
SELECT  title, content, date      FROM article3

@Joe Stefanelli,那么如何解决我遇到的问题呢?如果我需要这样的查询。@cj333:在查询的第二部分添加一个cat列。如果第3条中没有合适的栏目可供使用,则使用constant@cj333:如果在第二个查询中不需要cat列,则将该第二个查询修改为
选择标题、内容、日期,空为cat…
@Joe Stefanelli,
选择标题、内容、日期,空为cat…
,即可运行。谢谢