2012-04-09 100 views
1

我有一個搜索工具,但希望能夠允許搜索任何東西,而不是簡單地列出項目的類別。相當標準的東西。mysql匹配通配符

所以,當用戶沒有輸入搜索詞並簡單地選擇一個類別時,我希望我的搜索結果可以找到所有的東西,例如, 「cat_id = 1」。

我正在嘗試以下方法,並嘗試了一些不同的方法,但沒有喜悅,並且不是真的想訴諸不同的siutuations,如果我可以幫助它寫不同的查詢。

我尋找的表格已經在列一個全文索引名爲「標題」和我想:

select col_name from tablename where (MATCH(title) AGAINST ('*' IN BOOLEAN MODE)) 

但沒有結果可言,允許該通配符?

回答

1

使用*無法幫助。請參閱MySQL網站的用法:

MATCH()採用逗號分隔的列表來命名要搜索的列。 AGAINST接受一個字符串進行搜索,還有一個可選的修飾符指示要執行的搜索類型。搜索字符串必須是文字字符串,而不是變量或列名稱。

如果用戶沒有輸入搜索條件,是不是應該忽略那個特定的WHERE條件?

+0

是的我知道我可以這樣做,我只是不特別喜歡在任何地方加載「if」語句,只要我能幫到它。謝謝回覆。 – 2012-04-09 16:29:12