2011-03-12 34 views
0

我有一個MySQL表(table1的)具有以下字段這個簡單的搜索查詢...我該如何解決PHP的MySQL

ID,標題,描述,細節,類別,狀態

我是什麼試圖做的是搜索與常規PHP搜索查詢這些字段...我現在就是查詢...

$q = mysql_query("SELECT * FROM table1 WHERE title LIKE '%$q%' OR description LIKE '%$q%' OR detail LIKE '%$q%' AND category='$cateid' AND status='1' ORDER BY id DESC LIMIT 10"); 

哪裏$q是我的搜索字符串,$cateid是我的類ID和狀態開/關(活動/無效)

現在,如果使用此查詢得到結果,我得到5個結果,而我有查詢字符串= foo,它只存在於一個條目中不是5 ...並且它向我顯示了狀態爲'0'的行 當我改變我的查詢

$q = mysql_query("SELECT * FROM table1 WHERE title LIKE '%$q%' AND category='$cateid' AND status='1' ORDER BY id DESC LIMIT 10"); 

它給了我正確的結果...... 但我也希望我的查詢字符串來描述和具體領域分別匹配。 請幫我一把。

+0

使用大括號。 'AND'優先於'OR'。 – Franz 2011-03-12 18:29:40

回答

2

你需要把括號()周圍所有的OR條件

SELECT * FROM table1 
    WHERE (title LIKE '%$q%' OR description LIKE '%$q%' OR detail LIKE '%$q%') 
    AND category='$cateid' AND status='1' ORDER BY id DESC LIMIT 10 
1

我認爲這是你需要的查詢:

$q = mysql_query("SELECT * FROM table1 WHERE 
    (title LIKE '%$q%' OR detail LIKE '%$q%') 
    AND category='$cateid' AND status='1' ORDER BY id DESC LIMIT 10"); 
相關問題