Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Beispiele für ThinkPHP5-Union-(Assoziations-)Abfragen, Multi-Bedingungs-Abfragen und Aggregationsabfragen

Detaillierte Beispiele für ThinkPHP5-Union-(Assoziations-)Abfragen, Multi-Bedingungs-Abfragen und Aggregationsabfragen

不言
Freigeben: 2023-03-25 10:38:01
Original
5324 Leute haben es durchsucht

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`)
);
Nach dem Login kopieren

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`)
);
Nach dem Login kopieren

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();
Nach dem Login kopieren

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();
Nach dem Login kopieren

Beispiel 2:

$where=array(
   "version_name"=>$version_name,
   "project_name"=>$project_name
);
$userdata=$this->where($where)->select();
Nach dem Login kopieren

Beispiel 3:

$where=array(
  "version_id"=>$version_id
);
$version_name = model("Version")->where($where)->field("version_name")->find();
Nach dem Login kopieren

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();
Nach dem Login kopieren

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();
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren

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();
Nach dem Login kopieren
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage