Heim > Artikel > Backend-Entwicklung > Detaillierte Beispiele für ThinkPHP5-Union-(Assoziations-)Abfragen, Multi-Bedingungs-Abfragen und Aggregationsabfragen
In diesem Artikel werden hauptsächlich gemeinsame (Assoziations-)Abfragen, Abfragen mit mehreren Bedingungen und Aggregationsabfragen vorgestellt. Er fasst und analysiert gängige Abfrageoperationstechniken von thinkPHP5 in Form von Beispielen In diesem Artikel werden die Beispiele erläutert. Er unterstützt gemeinsame (Assoziations-)Abfragen, Abfragen mit mehreren Bedingungen und Aggregationsabfragen von ThinkPHP5. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Union-(Assoziations-)Abfrage 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. Versionsnummerntabelle
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. Union-Abfrage
$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. Mehrfachbedingungsabfrage
Methode 1:
Setzen Sie die Abfragebedingungen im Array Als Where-Funktionsparameter, aber wenn bedingte Parameter wie „größer als“ oder „kleiner“ vorhanden sind, können im Array keine Werte zugewiesen werden. Beispiel 1:$where=array( "version_name"=>$version_name, "project_name"=>$project_name ); $userdata=$this->where($where)->find();Beispiel 2:
$where=array( "version_name"=>$version_name, "project_name"=>$project_name ); $userdata=$this->where($where)->select();Beispiel 3:
$where=array( "version_id"=>$version_id ); $version_name = model("Version")->where($where)->field("version_name")->find();Methode 2: Verwenden Sie mehrere SQL-Abfrageanweisungen als Where-Parameter, sodass Bedingungen wie größer als oder kleiner gelten unterstützt.
$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();Methode 3: Fügen Sie SQL-Abfrageanweisungen in mehrere Where-Funktionen ein
$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. Aggregation-Max-Funktion
1. Das zuletzt eingefügte Upgrade-Paket kann wie folgt zurückgegeben werden, es wird jedoch nur das Feld „create_time“ zurückgegeben. Felder des gesamten Datensatzes können nicht zurückgegeben werden.
$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. Sie können also Folgendes verwenden, um den zuletzt eingefügten Datensatz zu finden und das gesamte Datensatzfeld zurückzugeben. Führen Sie zunächst eine Sortierung durch und suchen Sie dann den ersten ein Datensatz.
$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();Verwandte Empfehlungen:
ThinkPHP-Framework basierend auf einem Beispiel für den Betrieb einer PDO-Modus-Verbindungsdatenbank
Detaillierte Erläuterung der verteilten Datenbankverbindungsmethode des ThinkPHP-Frameworks
thinkPHPs einfache Methode zur Implementierung mehrerer Unterabfrageanweisungen
Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für ThinkPHP5-Union-(Assoziations-)Abfragen, Multi-Bedingungs-Abfragen und Aggregationsabfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!