描述問題一個產品列表,需要根據不同的關鍵字來顯示結果。關鍵字分別會在"highlight_desc|keywords|page_title|description"中出現。如關鍵字“42L大容量”,"一鍵菜單"。我現在是搜索一個關鍵字是有數據的,如果組合起來就沒有數據。想要的結果是,只要關鍵字在任何一個字段中都要有結果顯示。代碼$goods = D('GoodsserialView');
$where = array('goods.cate'=>$cate, 'goods.status'=>1);
$keywords = '%'.$keys.'%';
$where['highlight_desc|keywords|page_title|description'] = array('LIKE', $keywords);
1 回答

繁花如伊
TA貢獻2012條經驗 獲得超12個贊
建議采用原生SQL 使用 MySQL的 concat() 方法將需要匹配的字段用特定字符隔開連接起 然后再用 LIKE ,
其次需要注意使用IFNULL來判斷字段為NULL就使用空字符串代替,不然會因為一個NULL 導致整個連接為NULL,從而查不到結果。
如果其中一個字段內容比較多 那就最好排除那個字段 用 or 再 LIKE 一下。
- 1 回答
- 0 關注
- 740 瀏覽
添加回答
舉報
0/150
提交
取消