Heim  >  Artikel  >  Backend-Entwicklung  >  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

不言
不言Original
2018-05-03 16:47:395246Durchsuche

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!

Stellungnahme:
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