Maison >développement back-end >tutoriel php >Exemples détaillés de requête d'union (association) ThinkPHP5, de requête multi-conditions et de requête d'agrégation

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

不言
不言original
2018-05-03 16:47:395338parcourir

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`)
);

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`)
);

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();

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();

Exemple 2 :

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

Exemple 3 :

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

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();

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();

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)

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();

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!

Déclaration:
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