Mysql使用自定义方法以及cakephp分页使用join查询的方法_MySQL
bitsCN.com
Mysql使用自定义方法以及cakephp分页使用join查询的方法
第一步:设置SET GLOBAL log_bin_trust_function_creators=TRUE;
如果报ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)这种错误
第二步:
Sql代码
DELIMITER $$
USE `zhiku`$$
DROP FUNCTION IF EXISTS `getChildDept`$$
CREATE FUNCTION `getChildDept`(rootId INT) RETURNS TEXT CHARSET utf8
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);
SET sTemp = '$';
SET sTempChd =CAST(rootId AS CHAR);
WHILE sTempChd IS NOT NULL DO
SET sTemp = CONCAT(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(id) INTO sTempChd FROM zk_departments WHERE FIND_IN_SET(parent_id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END$$
DELIMITER ;
第三步:直接调用
SELECT DISTINCT(d.user_id) AS user_id,d.dept_id,u.compellation FROM zk_user_departments d INNER JOIN zk_users u ON u.id=d.user_id AND INSTR(u.pinyin,'h')=2 WHERE FIND_IN_SET(d.dept_id, getChildDept(128)) GROUP BY d.user_id;
放在cakephp为:
Php代码
$conditions = array('FIND_IN_SET(dept_id, getChildDept('.$dept_id.'))');
$condition_join = '`User`.`id` = `UserDepartment`.`user_id`';
if(!emptyempty($c))$condition_join .= ' AND INSTR(User.pinyin,"'.$c.'")=2';
//分页
$this->paginate = array(
'UserDepartment' => array(
'conditions' => $conditions,
'order' => array('dept_id'=>'ASC'),
'limit' => 10,
'recursive' => -1,
'group' => array('user_id'),
'fields' => array('user_id','dept_id'),
'joins' => array(array(
'alias' => 'User',
'table' => 'zk_users',
'type' => 'INNER',
'conditions' => $condition_join,
)),
)
);
$data = $this->paginate('UserDepartment');
bitsCN.com

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP ist ein Open-Source-PHPMVC-Framework, das in der Webanwendungsentwicklung weit verbreitet ist. CakePHP verfügt über viele Funktionen und Tools, darunter einen leistungsstarken Datenbankabfrage-Builder für interaktive Leistungsdatenbanken. Mit diesem Abfrage-Builder können Sie SQL-Abfragen mit objektorientierter Syntax ausführen, ohne umständliche SQL-Anweisungen schreiben zu müssen. In diesem Artikel wird die Verwendung des Datenbankabfrage-Builders in CakePHP vorgestellt. Herstellen einer Datenbankverbindung Bevor Sie den Datenbankabfrage-Builder verwenden, müssen Sie zunächst eine Datenbankverbindung in Ca erstellen

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP ist ein leistungsstarkes PHP-Framework, das Entwicklern viele nützliche Tools und Funktionen bietet. Eine davon ist die Paginierung, die uns hilft, große Datenmengen auf mehrere Seiten aufzuteilen und so das Durchsuchen und Bearbeiten zu erleichtern. Standardmäßig stellt CakePHP einige grundlegende Paginierungsmethoden bereit, aber manchmal müssen Sie möglicherweise einige benutzerdefinierte Paginierungsmethoden erstellen. In diesem Artikel erfahren Sie, wie Sie in CakePHP eine benutzerdefinierte Paginierung erstellen. Schritt 1: Erstellen Sie eine benutzerdefinierte Paginierungsklasse. Zuerst müssen wir eine benutzerdefinierte Paginierungsklasse erstellen. Das

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Die Verwendung von Twig in CakePHP ist eine Möglichkeit, Vorlagen und Ansichten zu trennen, wodurch der Code modularer und wartbarer wird. In diesem Artikel wird die Verwendung von Twig in CakePHP vorgestellt. 1. Installieren Sie Twig. Installieren Sie zunächst die Twig-Bibliothek im Projekt. Sie können Composer verwenden, um diese Aufgabe abzuschließen. Führen Sie den folgenden Befehl in der Konsole aus: Composerrequire „twig/twig:^2.0“ Dieser Befehl wird im Anbieter des Projekts angezeigt

CakePHP ist ein Open-Source-Webanwendungs-Framework, das auf der PHP-Sprache basiert und den Entwicklungsprozess von Webanwendungen vereinfacht. In CakePHP ist die Verarbeitung von Datei-Uploads eine häufige Anforderung. Ob es um das Hochladen von Avataren, Bildern oder Dokumenten geht, die entsprechenden Funktionen müssen im Programm implementiert sein. In diesem Artikel werden der Umgang mit Datei-Uploads in CakePHP und einige Vorsichtsmaßnahmen vorgestellt. Verarbeiten hochgeladener Dateien im Controller In CakePHP werden hochgeladene Dateien normalerweise in Cont verarbeitet
