2011-02-17 56 views
0

我建立了一個網站的搜索表單,只有一個輸入字段(名稱和姓氏),我需要它匹配兩個數據庫字段(NAME_FIELD和LNAME_FIELD)。 很明顯,用戶可以根據自己的喜好輸入姓名或姓氏(或只輸入姓氏)。 謝謝匹配單個輸入和兩個數據庫字段

+0

您是否嘗試過MyISAM全文搜索? – 2011-02-17 22:04:01

回答

0

的語法可能會關閉一些,但你可以這樣做:

WHERE 'name_field' LIKE %'YOUR_INPUT'% OR 'lname_field' LIKE %'YOUR_INPUT'% 

您可以使用= 'YOUR_FIELD'完全匹配它。不使用時

0

假設該用戶的輸入NULL:

select * 
    from YourTable 
    where NAME_FIELD = coalesce(@name, NAME_FIELD) 
     and LNAME_FIELD = coalesce(@lastname, LNAME_FIELD) 
0

假設你正在使用預處理語句:

WHERE (:name IS NULL OR NAME_FIELD LIKE :name) 
    OR (:lname IS NULL OR LNAME_FIELD LIKE :lname) 

看一看MyISAM Full Text Search,這將導致更好的性能,則LIKE運營商。