$keywords_array=explode(' ',$keywords);
$like_where=array();
foreach ($keywords_array as $key => $value) {
if($value!=' '){
$like_where[]=array('like','%'.$value.'%');
}
}
$like_where[]=$keywords;
$like_where[]='or';
$kcondition['goods.goods_name']=$like_where;
$kcondition['goods.keywords']=$like_where;
$kcondition['_logic'] = 'or';
$condition['_complex'] = $kcondition;
$condition['goods.status']=array('in','1,2');
$condition['goods.is_del']=0;
打印出来的数据
array(3) {
["_complex"] => array(3) {
["goods.goods_name"] => array(3) {
[0] => array(2) {
[0] => string(4) "like"
[1] => string(17) "%与秋洗碗巾%"
}
[1] => string(15) "与秋洗碗巾"
[2] => string(2) "or"
}
["goods.keywords"] => array(3) {
[0] => array(2) {
[0] => string(4) "like"
[1] => string(17) "%与秋洗碗巾%"
}
[1] => string(15) "与秋洗碗巾"
[2] => string(2) "or"
}
["_logic"] => string(2) "or"
}
["goods.status"] => array(2) {
[0] => string(2) "in"
[1] => string(3) "1,2"
}
["goods.is_del"] => int(0)
}
string(283) "SELECT COUNT(*) AS tp_count FROM `goods` WHERE ( ( goods.goods_name LIKE '%与秋洗碗巾%' OR goods.goods_name = '与秋洗碗巾' ) OR ( goods.keywords LIKE '%与秋洗碗巾%' OR goods.keywords = '与秋洗碗巾' ) ) AND goods.status IN ('1','2') AND goods.is_del = 0 LIMIT 1 "
观察打印出来的数据,可以发现["_logic"] => string(2) "or"是用来连接goods.goods_name和goods_keywords 的,而两个字段分别又带有一个or,这个or是用来连接每个字段里面的条件的,比如
["goods.goods_name"] => array(3) {
[0] => array(2) {
[0] => string(4) "like"
[1] => string(17) "%与秋洗碗巾%"
}
[1] => string(15) "与秋洗碗巾"
[2] => string(2) "or"
}
表示 goods.goods_name LIKE '%与秋洗碗巾%' OR goods.goods_name = '与秋洗碗巾'