mix/sharding-query

数据库分表分页查询库 (不依赖框架)

v1.0.1 2019-02-15 03:39 UTC

This package is auto-updated.

Last update: 2024-04-15 15:06:49 UTC


README

分表数据查询类

安装

使用 composer 安装:

composer require mix/sharding-query

使用方法

ThinkPHP 5 的范例,支持任何框架,只需修改 query 参数的闭包代码。

$query = new \ShardingQuery\Query([
    'query'    => function ($sql) {
        return \think\Db::query($sql);
    },
    'table'    => [
        'order',
        'order_201805',
        'order_201804',
    ],
    'field'    => '{table}.*, u.name',
    'leftJoin' => [
        'user AS u ON u.member_id = {table}.member_id',
    ],
    'where'    => '{table}.member_id = 10001 AND status = 1',
    'order'    => '{table}.add_time DESC',
    'offset'   => 0,
    'limit'    => 10,
]);
// 查询结果
$result        = $query->select();
// 总行数,用于分页
$count         = $query->count();
// 追踪数据,用于调试
$trace         = $query->trace();

全部参数:

  • query:执行 sql 返回结果的闭包,接收一个 $sql 参数,返回查询结果。
  • table:要查询的多个同构表的清单,数组类型。
  • field:select 选择的列名,字符串类型。
  • innerJoin:join信息,数组类型。
  • leftJoin:join信息,数组类型。
  • where:查询条件,字符串类型。
  • order:排序,字符串类型。
  • offset:偏移数,整数类型。
  • limit:限制数,整数类型。

License

Apache License Version 2.0, http://www.apache.org/licenses/