Ich werde nicht viel Unsinn erzählen, schauen wir uns einfach den Code an ~ wählen Sie project_no, Summe (Fall wenn Gerätestatus = 0, dann 1, sonst 0, Ende) als offTotal, Summe (Fall wenn Gerätestatus = 1, dann 1, sonst 0, Ende) als Online-Gesamtsumme, Summe(1)Gesamt von iot_d_device Gruppieren nach Projektnummer Sortieren nach project_no Ergänzung: MySQL verwendet eine SQL-Anweisung, um mehrere statistische Ergebnisse abzufragen Bei Mall-Projekten tritt zwangsläufig das Problem auf, dass Benutzer auf ihrer persönlichen Center-Seite die Anzahl der Bestellungen mit unterschiedlichem Status abfragen. Natürlich ist dieses Problem nicht schwierig. Sie können eine Methode auf der DAO-Ebene schreiben, die den Status als Eingabeparameter verwendet und jedes Mal einen anderen Statuswert übergibt, um nacheinander die Anzahl der Bestellungen im entsprechenden Status abzufragen. Als ich heute die H5-Schnittstelle geschrieben habe, wollte ich es auf eine andere Art prüfen, nämlich die Anzahl der Bestellungen in mehreren Staaten über ein SQL abfragen. Ich habe online gesucht und fand die Methode durchführbar. Also habe ich sie ausprobiert und sie hat wie erwartet funktioniert. Das Beispiel sieht wie folgt aus (die Daten werden nur zur Veranschaulichung des heutigen Problems verwendet und das Tabellendesign ist nicht streng. Geben Sie mir bitte nicht die Schuld):SETZEN SIE FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Tabellenstruktur für mini_test_order -- ---------------------------- Tabelle löschen, wenn `mini_test_order` vorhanden ist; Tabelle „mini_test_order“ erstellen ( `id` int(11) NICHT NULL, `order_no` varchar(32) DEFAULT NULL COMMENT 'Bestellnummer', `user_id` int(11) DEFAULT NULL COMMENT 'Benutzer-ID', `shop_id` int(11) DEFAULT NULL COMMENT 'Händler-ID', `order_status` tinyint(1) DEFAULT NULL COMMENT 'Bestellstatus', `create_time` int(10) DEFAULT NULL COMMENT 'Erstellungszeit', PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB STANDARD-CHARSET=utf8; -- ---------------------------- -- Aufzeichnungen der Mini-Testbestellung -- ---------------------------- INSERT INTO `mini_test_order` VALUES ('1', 'aaaaaaaaa', '11', '111', '1', '1573041313'); INSERT INTO `mini_test_order` VALUES ('2', 'bbbbbbbb', '11', '222', '1', '1573041313'); INSERT INTO `mini_test_order` VALUES ('3', 'cccccccccc', '11', '333', '2', '1573041313'); INSERT INTO `mini_test_order` VALUES ('4', 'dddddddd', '11', '222', '3', '1573041313'); INSERT INTO `mini_test_order` VALUES ('5', 'eeeeeeeeee', '11', '111', '4', '1573041313'); INSERT INTO `mini_test_order` VALUES ('6', 'ffffffffffffff', '11', '111', '3', '1573041313'); INSERT INTO `mini_test_order` VALUES ('7', 'gggggggg', '11', '222', '4', '1573041313'); INSERT INTO `mini_test_order` VALUES ('8', 'hhhhhhhhh', '11', '111', '4', '1573041313'); INSERT INTO `mini_test_order` VALUES ('9', 'iiiiiiiiiiiiiiiiiiiii', '11', '333', '3', '1573041313'); INSERT INTO `mini_test_order` VALUES ('10', 'jjjjjjjjjjjjjjjjjjjjjj', '11', '222', '1', '1573041313'); Die wichtigsten SQL-Anweisungen lauten wie folgt: Wählen Sie ANZAHL (FALL Bestellstatus, wenn 1, dann 1 Ende) als "Status 1", ANZAHL (FALL Bestellstatus, wenn 2, dann 1 Ende) als "Status 2", ANZAHL (FALL Bestellstatus, wenn 3, dann 1 Ende) als "Status 3", ANZAHL (FALL Bestellstatus, wenn 4, dann 1 Ende) als "Status 4" aus "Mini-Testbestellung"; oder wie folgt: WÄHLEN SIE ANZAHL (FALL, WENN Bestellstatus = 1, DANN 1 ENDE) ALS "Status 1", ANZAHL (FALL, WENN Bestellstatus = 2, DANN 1 ENDE) ALS "Status 2", ANZAHL (FALL, WENN Bestellstatus = 3, DANN 1 ENDE) ALS "Status 3", ANZAHL (FALL, WENN Bestellstatus = 4, DANN 1 ENDE) ALS "Status 4" AUS `mini_test_order`; Natürlich sind SQL-Anweisungen nicht auf die beiden oben genannten Methoden beschränkt. Wer gerne mehr erfahren möchte, kann gerne eine ergänzende Nachricht hinterlassen. Es gibt zwei Syntaxen für MySQL-Fall, wenn1. Einfache Funktionen CASE [Spaltenname] WHEN [Wert1] THEN [Ergebnis1]…ELSE [Standard] END 2. Suchfunktion CASE WHEN [Ausdruck] THEN [Ergebnis1]…ELSE [Standard] END Der Unterschied zwischen den beidenErsteres zählt alle möglichen Werte des Felds col_name auf, wenn der Wert die Bedingung value1 erfüllt; Letzterer kann Urteile schreiben, und die Suchfunktion gibt nur den ersten Wert zurück, der die Bedingungen erfüllt, andere Fälle werden ignoriert. Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: CSS zur Implementierung von Sprites und Schriftsymbolen
>>: Zusammenfassung der Probleme bei der Speicherplatzfreigabe unter Linux
Wenn Dateien von einem Prozess verwendet und vers...
Umfeld: MAC_OS 10.12 Python 3.6 MySQL 5.7.25 Djan...
Vue $http - domänenübergreifendes Abrufen und Sen...
Vorwort Was ist Datentypkonvertierung? Der Standa...
<br />Original: Progressive Enhancement vers...
Während der normalen Projektentwicklung, wenn die...
Erstellen eines Cursors Erstellen Sie zunächst ei...
Bei einigen Systemen mit großen Datenmengen beste...
1. Installationsumgebung 1. HUAWEI Mate X CPU i5 ...
Die Standardanzahl von Remotedesktopverbindungen ...
Um Node-red mit der Datenbank (mysql) zu verbinde...
1: Durchsatz (Anfragen pro Sekunde) Eine quantita...
F: Wenn Sie Outlook oder IE verwenden, wird beim ...
Unter Linux treten häufig Situationen auf, in den...
Code kopieren Der Code lautet wie folgt: <thea...