我正在制作一个多表全文查询。但我遇到了一些问题。 我需要进行像
这样的查询(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'
。非常感谢。
答案 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'