mysql многотабличная проблема полнотекстового запроса? - PullRequest
3 голосов
/ 19 апреля 2011

Я делаю многотабличный полнотекстовый запрос. Но я встретил некоторый вопрос.Мне нужно сделать запрос вроде

(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 ]

2 голосов
/ 19 апреля 2011

Я не знаю, почему удаление cat LIKE 'Science fiction' заставляет запрос работать.Как написано, это не должно работать в любом случае.UNION требует, чтобы обе части запросов производили одинаковое количество столбцов с совместимыми типами.Ваш UNION имеет 4 столбца в первой части и 3 столбца во второй:

SELECT  title, content, date, cat FROM article1  
UNION
SELECT  title, content, date      FROM article3
2 голосов
/ 19 апреля 2011

Вы пытаетесь объединить наборы результатов, которые возвращают различное количество столбцов. Ваш первый запрос возвращает 4 столбца (заголовок, контент, дата, кошка), а ваш второй возвращает только 3 (заголовок, контент, дата). Каждый запрос должен возвращать одинаковое количество столбцов.

2 голосов
/ 19 апреля 2011

Возвращает ли mysql_query значение ЛОЖЬ, что указывает на проблему с анализом вашего запроса? Если вы слепо передали «ЛОЖЬ» в mysql_fetch_array (), я ожидаю увидеть такую ​​ошибку.

0 голосов
/ 19 апреля 2011

попробуй

cat LIKE 'Science fiction' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...