2013-09-02 2 views
1

У меня есть этот поисковый запрос, и я хотел бы отфильтровать результаты на основе «folder_restriction», но, похоже, предложение AND не фильтрует результаты. Где я могу ошибаться?Результаты поиска фильтра

SELECT * 
    FROM mod_images 
    LEFT JOIN mod_folders 
     ON folder_id = image_folder_id 
    LEFT JOIN mod_cats 
     ON cat_id = folder_cat_id      
    WHERE ((`folder_number` LIKE '%".$search."%') OR ('%".$search."%')) OR 
      ((`titule` LIKE '%".$search."%') OR ('%".$search."%'))  OR 
      ((`description` LIKE '%".$search."%') OR ('%".$search."%')) OR 
     AND `folder_restriction` = '0' 
    LIMIT 2000 
+1

ИЛИ ('%% "$ поиск.".') всегда истинно. Это как сказать «WHERE 1» – Strawberry

+2

Вы получаете сообщение об ошибке? потому что ваш синтаксис запроса кажется неправильным "ИЛИ И' folder_restriction' = '0' " – Tommassiov

ответ

1

Попробуйте это: -

SELECT * FROM mod_images 
    LEFT JOIN mod_folders ON folder_id = image_folder_id 
    LEFT JOIN mod_cats ON cat_id = folder_cat_id      
    WHERE 
    ((`folder_number` LIKE '%".$search."%') OR 
    (`titule` LIKE '%".$search."%') OR 
    (`description` LIKE '%".$search."%')) 
    AND `folder_restriction` = '0' 
    LIMIT 2000 

или попытаться удалить OR на последней: -

SELECT * 
FROM mod_images 
LEFT JOIN mod_folders 
    ON folder_id = image_folder_id 
LEFT JOIN mod_cats 
    ON cat_id = folder_cat_id      
WHERE (((`folder_number` LIKE '%".$search."%') OR ('%".$search."%')) OR 
     ((`titule` LIKE '%".$search."%') OR ('%".$search."%'))  OR 
     ((`description` LIKE '%".$search."%') OR ('%".$search."%'))) 
    AND `folder_restriction` = '0' 
LIMIT 2000 
0
SELECT * 
    FROM mod_images 
    LEFT JOIN mod_folders 
     ON folder_id = image_folder_id 
    LEFT JOIN mod_cats 
     ON cat_id = folder_cat_id      
    WHERE (((`folder_number` LIKE '%".$search."%') OR ('%".$search."%')) OR 
      ((`titule` LIKE '%".$search."%') OR ('%".$search."%'))  OR 
      ((`description` LIKE '%".$search."%') OR ('%".$search."%'))) 
     AND `folder_restriction` = '0' 
    LIMIT 2000