thinkphp复合WHERE查询的写法

 where (id != 5 and age > 20 ) or (id > 15 and age < 18 ) ;



用 $map['_complex']
例如:
$where['name']  = array('like','%thinkphp%');
$where['title']  = array('like','%thinkphp%');
$where['_logic'] = 'or';
$map['_complex'] = $where;
$map['id']  = array('gt',1);
查询条件是
( id > 1) AND ( ( name like '%thinkphp%') OR ( title like '%thinkphp%') )


//另外,  in  、FIND_IN_SET('1',user_per) 查询方法  【[注:in前的变量用于数值, FIND_IN_SET后的变量用于字符串】

		if($catid){
				
				$catarray[]='1,2';
				$map['cat_id']=array('in',$catarray);				
				
			}
			if($brand_id){
				
				$map['brand_id']=$brand_id;
				$where=$map;
			}
			if($user_per){
				//FIND_IN_SET('1',user_per)
				$map['_string'] = 'FIND_IN_SET('."'$user_per'".',user_per)';				
				$where=$map;

			}



=========================

注意:

select * from treenodes where FIND_IN_SET($id,'1,2,3,4,5');

select * from treenodes where FIND_IN_SET($id,id);

                                                                                  (变量,数据库字段)

使用find_in_set函数一次返回多条记录

id 是一个表的字段 然后每条记录分别是id等于1,2,3,4,5的时候
有点类似in (集合)
select * from treenodes where id in (1,2,3,4,5);


另外,一对多


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值