🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 查询语言 TookPHP框架通过 where 方法操作 SQL 条件,可以指定多种参数类型作为查询条件。 **当数组为参数时会过滤非法字段(建议用数组作为查询条件)** ~~~ //使用字符串做为条件 $db->where('id>1 and id<100')->all(); //生成SQL: SELECT * FROM tb_news WHERE id>1 and id<100 ~~~ ~~~ //使用数组做为查询条件 $map['title'] = '标题'; $map['nid'] = '100'; $map['_logic'] = 'OR'; $db->where($map)->all(); //得到的查询条件是:title ='标题' OR nid ='100' ~~~ ~~~ 使用数组做为参数 $map[]='id>100 '; $map[]='title like "%关键词%"'; $map['_logic']='OR'; //得到的查询条件是:id>100 OR title like '%关键词%' //条件字符串后可以加 OR、AND、XOR 等,如果不加时默认使用 AND 做为连接 ~~~ ## 链式操作 ~~~ $db->where("title like '%关键词%'")->where("id>2")->all(); //查询语句是:SELECT * FROM tb_content WHERE title like '%关键词%' AND id>2 ~~~ ## 表达式查询 | 表达式 | 含义 | | -- | -- | | EQ | 等于(=) | | NEQ | 不等于(<>) | | GT | 大于 (>) | | EGT | 大于等于 | | LT | 小于 | | ELT | 小于等于 | | [NOT] LIKE | 模糊查询 | | [NOT] IN | ( 不在 ) IN 查询 | | [NOT] BETWEEN | ( 不在 ) 区间查询 | | EXP | 表达式查询 | ~~~ //EQ: 等于 (=) $map['id'] = array('eq', 1) //得到的查询条件是: id =1 ~~~ ~~~ //NEQ: 等于 (<>) $map['id'] = array('neq', 1) //得到的查询条件是: id <>1 ~~~ ~~~ //GT: 等于 (>) $map['id'] = array('gt', 1) //查询语句: SELECT * FROM tb_news WHERE id >1 ~~~ ~~~ //EGT: 等于 (>=) $map['id'] = array('egt', 1) //得到的查询条件是: id >=1 ~~~ ~~~ //LT: 等于 (<) $map['id'] = array('lt', 1); //得到的查询条件是:id <=1 ~~~ ~~~ //ELT: 等于 (<=) $map['id'] = array('egt', 1) //得到的查询条件是:id <=1 ~~~ ~~~ //[NOT]like: 同 SQL 中的 LIKE $map['title'] = array('like' , '%关键词%'); //得到的查询条件是:title LIKE '%关键词%' ~~~ ~~~ $map['title'] = array('like' , array('%关键词1%', '关键词2%'),'OR'); //得到的查询条件是:title LIKE '%关键词1%' OR title LIKE '关键词2%' ~~~ ~~~ //[NOT]BETWEEN: 同 sql 的 [not]between $map['nid'] = array('between' , '1,2'); //$map['nid'] = array('between' , array(1,2)); //得到的查询条件是:nid BETWEEN 1 AND 2 ~~~ ~~~ //[NOT]IN: 同 sql 的 [not]in $map['id'] = array('in' , array(1,2)); //得到的查询条件是:id IN (1,2) ~~~ ~~~ //EXP: 表达式 $map['title'] = array('exp' , " like '%关键词%'"); //得到的查询条件是:title like '%关键词%' ~~~ ~~~ //模糊查询 $map['_string'] = "uid>1 or username = 'admin'"; //得到的查询条件是:uid>1 or username = 'admin' ~~~ ~~~ //请求字符串查询 $map['_query']="nid=1&title=关键词&_logic=OR"; //得到的查询条件是:nid ='1' OR title ='关键词' ~~~ ~~~ //区间查询 $map['uid'] = array(array('gt', 3), array('lt', 5), 'AND'); //得到的查询条件是:uid >3 AND uid <5 ,最后一个可以为 OR、AND、XOR 如果不写默认为 AND ~~~