微擎数据库链式查询合集

微擎的文档看着麻烦,合在一起方便查询

目录

loadformselectwherewhereorhavinggroupbyorderbyleftjoininnerjoinonlimitpagegetgetallgetcolumncountexistsgetLastQueryTotalgetLastQuery


load

$query = load()->object('query');

form

from($tablename, $alias = '')
指定要查询的表名

$tablename 参数指定要查询的数据表名,此处传入的表名不要使用tablename()函数
$alias 表别名,方便以构造条件语句和关联时使用

$row = $query->from('users', 'u')->select('u.username')->get();

select

select($field1, $field2, ...)
指定要查询的字段列表,相当于 SELECT * , SELECT name, username

$field 指定要查询的字段名,可以是多个参数也可以是一个数组

$row = $query->from('users', 'u')->select('uid', 'username')->get();
$row = $query->from('users', 'u')->select(array('uid', 'username'))->get();

where

where(array | string $condition, $parameters = array())
指定查询条件,所有的查询条件将以 AND 连接

$condition 指定要查询的条件字段,也支持 范围条件操作,’>’, ‘<’, ‘<>’, ‘!=’, ‘>=’, ‘<=’, ‘+=’, ‘-=’, ‘LIKE’, ‘like’
$parameters 指定查询条件的值

$row = $query->from('users', 'u')->where('u.sex', '1')->where('uid >=', '2')->get();
$row = $query->from('users', 'u')->where(array('u.sex' => 1, 'uid >=' => 2))->get();

whereor

whereor(string | array $condition, $parameters = array())
此函数是以 OR 来连接

$row = $query->from('users', 'u')->where('sex', '1')->whereor('uid', 2)->get();
//生成SQL如下
SELECT * FROM users AS U WHERE sex = '1' OR uid = '2' LIMIT 1

having

having(string | array $condition, $parameters = array())
指定要查询的条件,与 where 参数及使用方法一样,不同的 having 在聚合函数之后执行,一般要与groupby一起使用

$row = $query->from('users', 'u')->having('count(*) >', 2)->groupby('age')->getall();

groupby

groupby($field)
指定要分组的字段

$field 要分组查询的字段名

$row = $query->from('users', 'u')->groupby('u.sex')->get();

orderby

orderby($field, $direction = 'ASC')
指定查询结果排序字段和方式

$field 要排序的字段名
$direction 排序方式,可以为 ASC 或是 DESC

$row = $query->from('users', 'u')->orderby('u.uid', 'DESC')->get();

leftjoin

leftjoin($tablename, $alias = '')
指定要左关联的表,当需要rightjoin时,请调换一下顺序书写即可

$tablename 参数指定要查询的数据表名,此处传入的表名不要使用tablename()函数
$alias 表别名,方便以构造条件语句和关联时使用

$row = $query->from('users', 'u')->leftjoin('users_profile', 'b')->on('u.id', 'b.uid')->where('u.id', '525')->get();
//如果关联条件有多个时,请使用数组形式
on(array('u.id' => 'b.uid', 'u.username' => 'b.username'))

innerjoin

innerjoin($tablename, $alias = '')
与 leftjoin 使用方法一样

on

on($condition, $parameters = array())
指定关联查询中的关联条件

与 where 函数一样,多个关联条件可以使用数组形式,一个关联查询只可出现一个on语句

limit

limit(start, size)
指定要查询从第几行起的多少行,与SQL语句中的Limit意思一样

$start 查询从第几行起
$size 查询多少行

$row = $query->from('users', 'u')->limit(1, 10)->getall();

page

page(pageindex, pagesize)
根据分页获取数据,转换成 limit 语句为 LIMIT (pageindex - 1) * pagesize, pagesize

$pageindex 当前页码
$pagesize 一页多少条数据

$row = $query->from('users', 'u')->page(1, 10)->getall();

get

get()
获取一条记录

示例
$query = load()->object('query');
$row = $query->from('users', 'u')->get();

getall

getall($keyfield = '')
获取所有记录

$keyfield 获取记录集数组指定为键值的字段,默认是自然排序

$row = $query->from('users', 'u')->limit(1, 10)->getall('uid');

getcolumn

getcolumn($field = '')
获取一条记录中指定字段的值

$field 具体获取哪个字段的值

$row = $query->from('users', 'u')->getcolumn('username');

count

count()
只获取结果集的数量有多少

示例
$query = load()->object('query');
$row = $query->from('users', 'u')->count();

exists

exists()
获取满足某个条件的数据是否存在

$is_found = $query->from('users', 'u')->where('uid', 10)->exists();

getLastQueryTotal

getLastQueryTotal()
当查询中使用了limit限制语句时,可以在完成查询后,调用此函数来获取整个表的数据量,一般用于分页使用

$pindex = max(1, intval($_GPC['page']));
$psize = 20;
$query = load()->object('query');
$row = $query->from('users', 'u')->page($pindex, $psize)->getall();
$total = $query->getLastQueryTotal();
$pager = pagination($total, $pindex, $psize); //页码HTML

getLastQuery

getLastQuery()
获取最后执行的SQL语句及参数,主要用于调试代码

$row = $query->from('users', 'u')->get();
print_r($query->getLastQuery());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值