>  기사  >  백엔드 개발  >  ThinkPHP5 통합(연관) 쿼리, 다중 조건 쿼리, 집계 쿼리의 상세 예시

ThinkPHP5 통합(연관) 쿼리, 다중 조건 쿼리, 집계 쿼리의 상세 예시

不言
不言원래의
2018-05-03 16:47:395246검색

이 글에서는 ThinkPHP5의 공동(연관) 쿼리, 다중 조건 쿼리, 집계 쿼리를 주로 소개하고 있으며, thinkPHP5의 일반적인 쿼리 연산 기법을 예시 형태로 요약하고 분석하고 있습니다. ThinkPHP5의 조인트(연관) 쿼리, 다중 조건 쿼리, 집계 쿼리입니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

1. 공동(연관) 쿼리 1. 프로젝트 테이블

DROP TABLE IF EXISTS `darling_project`;
CREATE TABLE `darling_project` (
 `project_id` int(32) NOT NULL AUTO_INCREMENT,
 `project_name` varchar(20) NOT NULL,
 `create_time` int(32) NOT NULL,
 PRIMARY KEY (`project_id`),
 UNIQUE KEY `project_id` (`project_id`),
 UNIQUE KEY `project_name` (`project_name`)
);

2. 버전 번호 테이블

DROP TABLE IF EXISTS `darling_version`;
CREATE TABLE `darling_version` (
 `version_id` int(32) NOT NULL AUTO_INCREMENT,
 `project_id` int(32) NOT NULL,
 `version_name` varchar(128) NOT NULL,
 `create_time` int(32) NOT NULL,
 PRIMARY KEY (version_id),
 UNIQUE KEY `version_id` (`version_id`)
);

3. 공동 쿼리

$where=array(
  "version_id"=>$_POST['version_id']
);
$Project_version = model('Project')->join("darling_version","darling_version.project_id = darling_project.project_id")->where($where)->find();

2. 다중 조건 쿼리 방법 1:

쿼리 조건을 where 함수 매개 변수로 배열에 넣습니다. 단, 조건 매개 변수가 더 큰 경우 이보다 작거나 같으면 배열에 값을 할당할 수 없습니다. R 예 1: re

$where=array(
  "version_name"=>$version_name,
  "project_name"=>$project_name
);
$userdata=$this->where($where)->find();
E

예 2:

$where=array(
   "version_name"=>$version_name,
   "project_name"=>$project_name
);
$userdata=$this->where($where)->select();
E

예 3:

$where=array(
  "version_id"=>$version_id
);
$version_name = model("Version")->where($where)->field("version_name")->find();
E

방법 2:

여러 SQL 쿼리 문을 where 매개변수로 사용하여 다음보다 큼을 지원하도록 합니다. 이 조건보다 적습니다.

$package = model('admin/Package')
->where("project_id=".$Project_version['project_id']." and version_id=".$Project_version['version_id']." and status>1")
->order('create_time desc')
->find();

방법 3:

Put SQL 쿼리 문을 여러 곳에 함수

$package = model('admin/Package')
->where("project_id=".$Project_version['project_id'])
->where("version_id=".$Project_version['version_id'])
->where("status>1")
->order('create_time desc')
->find();

3. 최근에 삽입된 업그레이드는 다음과 같이 반환될 수 있습니다. 패키지 , 그러나 전체 레코드의 필드가 아닌 create_time 필드만 반환됩니다.

$package = model('admin/Package')
->where("project_id=".$Project_version['project_id'])
->where("version_id=".$Project_version['version_id'])
->where("status>1")->max(create_time)

2. 따라서 가장 최근에 삽입된 레코드를 찾고 전체 레코드 필드를 반환하려면 먼저 순서 정렬을 수행한 다음 첫 번째 레코드를 찾으세요.

$package = model('admin/Package')
->where("project_id=".$Project_version['project_id'])
->where("version_id=".$Project_version['version_id'])
->where("status>1")
->order('create_time desc')
->find();

관련 추천:

PDO 방식을 기반으로 한ThinkPHP 프레임워크 연결 데이터베이스 동작 예시

ThinkPHP 프레임워크 분산 데이터베이스 연결 방법 상세 설명

thinkPHP 간단한 방법으로 여러 하위 쿼리문 구현

위 내용은 ThinkPHP5 통합(연관) 쿼리, 다중 조건 쿼리, 집계 쿼리의 상세 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.