持续更新thinkphp查询数据库条件具体用法,
条件或
$condition = array(
['fromid|toid',"=","12"],
);
如上,表示字段fromid等于"12",或者toid等于“12”
小于等于、大于等于
if (!empty($endtime)) {
$condition[] = ['starttime', '<=', $endtime ];
}
if (!empty($starttime)) {
$condition[] = ['starttime', '>=', $starttime ];
}
join
表A
表B
查询A列表的时候,需要分别根据id获取详情:
public function getFriendsPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = '*')
{
$alias = 'f';
$join = [
[
'member m',
'm.member_id = f.fromid',
'left'
],
[
'member mto',
'mto.member_id = f.toid',
'left'
]
];
$field = 'f.*,m.nickname as fromnickname,m.mobile as frommobile,m.headimg as fromheadimg,mto.nickname as tonickname,mto.mobile as tomobile,mto.headimg as toheadimg';
$list = model('friends')->pageList($condition, $field, $order, $page, $page_size,$alias, $join);
return $this->success($list);
}
原生查询
use think\facade\Db;
public function lists()
{
$token = $this->checkToken();
$page = input('page', 1);
$limit = input('limit', PAGE_LIST_ROWS);
$list= Db::query("select a.* from goods a join friends b ON a.goods_name = b.fromid WHERE b.toid =:id UNION select a.* from goods a join friends b ON a.goods_name = b.toid WHERE b.fromid = :userid ORDER BY create_time desc LIMIT :page, :limit", ['id' => $token['data']['member_id'],'userid'=>$token['data']['member_id'],'page'=>$page-1,'limit'=>$limit]);
if (empty($list)){
return $this->response(['data'=>[]]);
}
return $this->response(['data'=>$list]);
}