Erläuterung: Wird hauptsächlich für die Anzeige einiger statistischer Daten in chronologischer Reihenfolge verwendet.
Wenn die Datenbankdaten Daten für den nächsten Tag enthalten, müssen die Statistiken jedoch jeden Tag angezeigt werden, auch wenn dies der Fall ist ist 0, dann So generieren Sie einen Zeitplan für die Verwendung:
SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date, COUNT(1) AS numb FROM qc_task WHERE create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )
Sieht das nicht gut aus? desc Sie können es arrangieren ... aber selbst wenn Sie es arrangieren, ist die Zeit inkonsistent;
Generieren Sie die Daten der letzten 7 Tage:
// 方法笨,但还是有效的 select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from (SELECT @num:=@num+1 as sj from (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, -- (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t1, -- 假如嫌弃生成的少,打来这个就行 (SELECT @num:=0) y) as timeList
Generieren Sie die Zeit:
Verwenden Sie sie nach der Generierung :
-- 生成后左右链接即可,但主表要为时间表 SELECT f.datetime, t.numb FROM (SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date, COUNT(1) AS numb FROM qc_task WHERE create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )) t right join (select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from (SELECT @num:=@num+1 as sj from (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, (SELECT @num:=0) y) as timeList) f on t.date = f.datetime ;
Der Effekt nach der Anwendung:
Ich habe keine Daten in der Datenbank...daher kann ich die Mengenanzeige nicht sehen
2. Variablenzuordnung
Man sieht viele @ Symbole im ersten, richtig? Das sind alles Variablen. Wenn Sie die Abfrageanweisung einfügen, wird die gesamte Abfrageanweisung zu aufgeblasen und ist sehr lang ... daher können einige Dinge aufgeteilt werden Beispiel in der Abfragedatenbankanweisung:
Lass uns ihre wahren Gesichter sehen:
# 查询部门区域编号 SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "历下区"); # 查询部门等级 SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "历下区");
Das obige ist der detaillierte Inhalt vonSo generieren Sie aufeinanderfolgende Daten und Variablenzuweisungen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!