Exemples détaillés de requête d'union (association) ThinkPHP5, de requête multi-conditions et de requête d'agrégation

不言
Libérer: 2023-03-25 10:38:01
original
5287 Les gens l'ont consulté

Cet article présente principalement la requête conjointe (association), la requête multi-conditions et la requête d'agrégation ThinkPHP5. Il résume et analyse les techniques courantes d'opération de requête de thinkPHP5 sous forme d'exemples. Les amis dans le besoin peuvent se référer aux exemples de cet article <.>

Il prend en charge les requêtes conjointes (association) ThinkPHP5, les requêtes multi-conditions et les requêtes d'agrégation. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1. Requête du syndicat (association)

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`)
);
Copier après la connexion

2. Tableau des numéros de version

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`)
);
Copier après la connexion

3.

$where=array(
  "version_id"=>$_POST[&#39;version_id&#39;]
);
$Project_version = model(&#39;Project&#39;)->join("darling_version","darling_version.project_id = darling_project.project_id")->where($where)->find();
Copier après la connexion

2. Requête multi-conditionsMéthode 1 :

Les conditions de requête sont placées dans le tableau en tant que paramètres de la fonction Where, mais s'il existe des paramètres de condition tels que supérieur ou inférieur, les valeurs ne peuvent pas être attribuées au tableau.

Exemple 1 :

$where=array(
  "version_name"=>$version_name,
  "project_name"=>$project_name
);
$userdata=$this->where($where)->find();
Copier après la connexion

Exemple 2 :

$where=array(
   "version_name"=>$version_name,
   "project_name"=>$project_name
);
$userdata=$this->where($where)->select();
Copier après la connexion

Exemple 3 :

$where=array(
  "version_id"=>$version_id
);
$version_name = model("Version")->where($where)->field("version_name")->find();
Copier après la connexion

Méthode 2 :

Utiliser plusieurs instructions de requête SQL comme paramètres Where, afin qu'elles soient pris en charge Supérieur à inférieur à cette condition.

$package = model(&#39;admin/Package&#39;)
->where("project_id=".$Project_version[&#39;project_id&#39;]." and version_id=".$Project_version[&#39;version_id&#39;]." and status>1")
->order(&#39;create_time desc&#39;)
->find();
Copier après la connexion

Méthode 3 :

Placer les instructions de requête SQL dans plusieurs fonctions Where

$package = model(&#39;admin/Package&#39;)
->where("project_id=".$Project_version[&#39;project_id&#39;])
->where("version_id=".$Project_version[&#39;version_id&#39;])
->where("status>1")
->order(&#39;create_time desc&#39;)
->find();
Copier après la connexion
Copier après la connexion

3. Fonction d'agrégation maximale 1. Le dernier package de mise à niveau inséré peut être renvoyé comme suit, mais uniquement le dernier inséré. le package de mise à niveau sera renvoyé. Le champ create_time ne peut pas renvoyer les champs de l'intégralité de l'enregistrement.

$package = model(&#39;admin/Package&#39;)
->where("project_id=".$Project_version[&#39;project_id&#39;])
->where("version_id=".$Project_version[&#39;version_id&#39;])
->where("status>1")->max(create_time)
Copier après la connexion

2. Vous pouvez donc utiliser ce qui suit pour trouver le dernier enregistrement inséré et renvoyer l'intégralité du champ d'enregistrement, puis effectuer le tri des commandes. trouver l'enregistrement A.

$package = model(&#39;admin/Package&#39;)
->where("project_id=".$Project_version[&#39;project_id&#39;])
->where("version_id=".$Project_version[&#39;version_id&#39;])
->where("status>1")
->order(&#39;create_time desc&#39;)
->find();
Copier après la connexion
Copier après la connexion

Recommandations associées :

Cadre ThinkPHP basé sur un exemple d'opération de base de données de connexion en mode PDO

Explication détaillée de la méthode de connexion à la base de données distribuée du framework ThinkPHP

Méthode simple de thinkPHP pour implémenter plusieurs instructions de sous-requête

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!