mysql多表全文查询问题?

时间:2011-04-19 15:59:14

标签: 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 MATCH (title,content)
 AGAINST 
('+Harry +Potter' IN BOOLEAN MODE)) 
Order By date DESC LIMIT 10

但它导致Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

如果我删除cat='Science fiction' AND,则可以通过测试。

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

4 个答案:

答案 0 :(得分:2)

mysql_query是否返回FALSE,表示解析查询时出现问题?如果你盲目地将“FALSE”传递给mysql_fetch_array(),我希望看到那种错误。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

我不知道为什么删除cat LIKE 'Science fiction'会使查询起作用。如上所述,它不应​​该在任何一种情况下都有效。 UNION要求两个部分的查询生成具有兼容类型的相同数量的列。您的UNION在第一部分中有4列,在第二部分中有3列:

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

答案 3 :(得分:0)

尝试

cat LIKE 'Science fiction'