php语言查询,查询语言 · TookPHP开发手册 · 看云

## 查询语言

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

~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值