// 关联查询
Db::table('table')
->alias('a')
->join('table2 b', 'a.Id=b.aId)
->join('table3 c', 'a.cId=c.Id)
->select()->toArray();
// 关联查询,查询指定字段
Db::table('table')
->alias('a')
->join('table2 b', 'a.Id=b.aId)
->join('table3 c', 'a.cId=c.Id)
->field('a.name, b.name, c.name')
->select()->toArray();
// 关联查询,多表中有重复字段,解决方法,使用as,为其临时改名
Db::table('table')
->alias('a')
->join('table2 b', 'a.Id=b.aId)
->join('table3 c', 'a.cId=c.Id)
->field('a.name, b.name as b_name, c.name as c_name')
->select()->toArray();
// 限制结果数量 limit(从索引几开始,查询几个),如果只传入一个参数,则代表返回该参数个数的数据,比如20,则输出20条数据
Db::table('table')
->limit(0,10)
->select()
->toArray();
// 限制结果数量 page(第几页,查询几个),比如page(1,10),就是第一页,返回10个,如果是page(2,10),就是第二页,返回10个
Db::table('table')
->page(1,10)
->select()
->toArray();
// 后端
$list = Db::table('table')
->paginate(18);
// 前端
{volist name='list' id='item'}
<p>{$item["name"]}</p>
{/volist}
{$list|raw}
// 新增,并返回新增条数,通常情况,成功返回1
Db::table('table')
->insert([
'name'=>'李某',
'age'=>30
]);
// 新增,并返回新增数据的主键
Db::table('table')
->insertGetId([
'name'=>'李某',
'age'=>30
]);
// 方式一
Db::table('table')
->where('id','=',10)
->update([
'age'=>29
]);
// 方式二
Db::table('table')
->where([
'id'=>10,
'createTime'=>'2021-4-22 15:19'
]);
use think\facade\Db;
// 查询所有
Db::table('table')
->select()
->toArray();
// 查询单个字段
Db::table('table')
->field('字段名')
->select()
->toArray();
// 查询多个字段
Db::table('table')
->field('字段1,字段2')
->select()
->toArray();
// 与where配合
Db::table('table')
->where('id', '=', 15)
->field('字段1, 字段2')
->select()
->toArray();
// 排序-单个条件
Db::table('table')
->order('createTime', 'DESC')
->select()
->toArray();
// 排序-多个条件
Db::table('table')
->order(['createTime','Id'=>'DESC'])
->select()
->toArray();
Db::table('table')
->where('name', 'like', '%www.ty2333.cn%')
->select()
->toArray();
Db::table('think_user')
->distinct(true)
->field('user_login')
->select();
$user_order_form = Db::table('user_order_form')
->whereOr([
[
['openid', '=', $openid],
['select_time', '=', date('Y-m-d', time())],
['state', '=', 1]
],[
['openid', '=', $openid],
['select_time', '=', date('Y-m-d', time())],
['state', '=', 2]
]
])->select()->toArray();
上面例子中,同一个字段state,可判断为1或者为2的条件。 之所以每个数组,都要将其它数组的相同字段一起写上,是因为每次判断,都得是三个字段一起判断,如果某个数组少写了要判断的字段,哪怕在判断该数组的state时,就会忽略比如openid或者select_name字段,从而导致查出不准确的数据。