首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微擎数据库链式查询合集

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

目录

load,form,select,where,whereor,having,groupby,orderby,leftjoin,innerjoin,on,limit,page,get,getall,getcolumn,count,exists,getLastQueryTotal,getLastQuery

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 指定要查询的条件字段,也支持 范围条件操作,’>’, ‘’, ‘!=’, ‘>=’, ‘

$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());

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190220A0HVW600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券