Codeanalyse von Benutzervariablen in MySQL-Abfrageanweisungen

Codeanalyse von Benutzervariablen in MySQL-Abfrageanweisungen

Im vorherigen Artikel haben wir die MySQL-Optimierungszusammenfassung – Gesamtzahl der Abfragen – vorgestellt. In diesem Artikel stellen wir ein weiteres Wissen zu Abfrageanweisungen vor: die Codeanalyse von Benutzervariablen.

Beginnen wir mit dem Code

Wählen Sie `Hinweis`.`id`, `Hinweis`.`fid`, `Hinweis`.`has_read`, `Hinweis`.`Hinweis_time`, `Hinweis`.`read_time`, `f`.`fnum`, `f`.`forg`, `f`.`fdst`, `f`.`actual_parking` als `Parken`, `f`.`geplante_Abfahrtszeit`, `f`.`geschätzte_Abfahrtszeit`, `f`.`actual_Abfahrtszeit`, `f`.`geplante_Ankunftszeit`, `f`.`geschätzte_Ankunftszeit`, `f`.`actual_Ankunftszeit`, `f`.`is_vip`, `f`.`aoc_Hinweis`
AUS (
  wählen
  t.id, 
  t.fid, 
  t.hat_gelesen, 
  t.Benachrichtigungszeit, 
  t.Lesezeit
  aus
  (
    wählen
    Hilfe, 
    ein.fid, 
    a.hat_gelesen,
    a.Benachrichtigungszeit, 
    a.Lesezeit,
    @v_rownum := @v_rownum+1,
    wenn(@v_fid=a.fid,@v_rowid:=@v_rowid+1,@v_rowid:=1 ) als Zeilenanzahl,
    @v_fid:=a.fid
    aus
    (
      WÄHLEN
      Ausweis, 
      fid, 
      hat_gelesen, 
      Benachrichtigungszeit, 
      Lesezeit 
      VON vkm_user_notice_flight
      wobei „notice_type“ = „process_update“ und uid=82
      Sortieren nach FID, Hinweiszeit absteigend
    ) A,
    (
      wählen Sie @v_rownum:=0, @v_rowid:=0, @v_fid:=null
    ) B
  )
  wobei t.row_count = 1
) AS `Hinweis`
LEFT JOIN `vkm_flight` AS `f` ON `notice`.`fid` = `f`.`id`
LEFT JOIN `vkm_parking` AS `parking` ON `f`.`actual_parking` = `parking`.`parking_num`

Ein Freund hat mir auf der Arbeit eine solche SQL-Anweisung geschickt und ich war zunächst verwirrt und habe sie überhaupt nicht verstanden! Da ich mit MySQL nicht sehr vertraut bin und nur einfache Hinzufügungen, Löschungen und Änderungen vornehmen kann, ist der obige Code tatsächlich sehr direkt geschrieben.

Wählen Sie `Hinweis`.`id`, `Hinweis`.`fid`, `Hinweis`.`has_read`, `Hinweis`.`Hinweis_time`, `Hinweis`.`read_time`, `f`.`fnum`, `f`.`forg`, `f`.`fdst`, `f`.`actual_parking` als `Parken`, `f`.`geplante_Abfahrtszeit`, `f`.`geschätzte_Abfahrtszeit`, `f`.`actual_Abfahrtszeit`, `f`.`geplante_Ankunftszeit`, `f`.`geschätzte_Ankunftszeit`, `f`.`actual_Ankunftszeit`, `f`.`is_vip`, `f`.`aoc_Hinweis`
VON „Hinweis“ LINKS VERBINDEN „vkm_flight“ ALS „f“ AUF „Hinweis“. „fid“ = „f“. „id“ LINKS VERBINDEN „vkm_parking“ ALS „Parkplatz“ AUF „f“. „tatsächlicher_Parkplatz“ = „Parkplatz“. „Parkplatznummer“

Aber die Abfrageeffizienz des obigen Codes ist wirklich anders! Ich verstehe den spezifischen Code oben nicht und bitte um Anleitung, aber ich habe auf Baidu gesucht und festgestellt, dass einer die Verwendung von if in MySQL und der andere die Verwendung von Benutzervariablen in MySQL ist

Der Benutzername kann durch Festlegen des Var-Werts oder in der obigen Form @var:=val; festgelegt werden.

Verwendung von „if“ in MySQL if(exp1,exp2,exp3). In „if“ gilt: Wenn exp1 wahr ist, dann wird exp2 ausgeführt, andernfalls wird exp3 ausgeführt.

Jetzt ist es vielleicht viel einfacher, sich den obigen Code anzusehen! Basierend auf dem obigen Code habe ich noch einmal ein einfaches Anwendungsbeispiel geschrieben

wähle id,fnum,forg,fdst,@v_rownum:=@v_rownum+1 aus vkm_flight,(wähle @v_rownum:=0) b

Dies gibt den Wert von @v_rownum zurück

Zusammenfassen

Dies ist der gesamte Inhalt dieses Artikels zur Codeanalyse von Benutzervariablen in MySQL-Abfrageanweisungen. Ich hoffe, er wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf diese Site verweisen: Beispiele für die Verwendung von oder Anweisungen in MySQL, detaillierte Erklärung der Bedeutung von N und M im MySQL-Datentyp DECIMAL (N, M) usw. Wenn Sie Fragen haben, können Sie jederzeit eine Nachricht hinterlassen und der Herausgeber wird Ihnen rechtzeitig antworten. Vielen Dank, Freunde, für die Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • Beispielanalyse der MySQL-Variablenverwendung [Systemvariablen, Benutzervariablen]
  • Detaillierte Erläuterung der MySQL-Benutzervariablen und Set-Anweisungsbeispiele

<<:  Installations-Tutorial für VMware Workstation 12 Pro Linux

>>:  VUE+Canvas implementiert das Spiel God of Wealth und erhält Barren

Artikel empfehlen

Detaillierte Erklärung der Funktionsweise von Nginx

So funktioniert Nginx Nginx besteht aus einem Ker...

Tutorial zur MySQL-Installation in der Linux-CentOS7-Umgebung

Detaillierte Einführung in die Schritte zur Insta...

Mehrere Lösungen zum Vergessen des MySQL-Passworts

Lösung 1 Deinstallieren Sie vollständig und lösch...

Details zur MySQL-Sortierfunktion

Inhaltsverzeichnis 1. Problemszenario 2. Ursachen...

Zusammenfassung von 6 Methoden zur Anzeige von Linux-Protokollen

Als Backend-Programmierer haben Sie an vielen Ste...

MySQL Router implementiert MySQL Lese-/Schreibtrennung

Inhaltsverzeichnis 1. Einleitung 2. MySQL-Router ...

Analyse des Problems der Hyper-V-Installation unter CentOS 8

CentOS 8 ist schon seit längerem auf dem Markt. A...

Details zum JavaScript-Prototyp und zur Prototypkette

Inhaltsverzeichnis 1. Prototyp (expliziter Protot...

Meta Viewport ermöglicht die Vollbildanzeige von Webseiten auf dem iPhone

In meiner Verzweiflung dachte ich plötzlich: Wie i...

Vor- und Nachteile des Tabellenlayouts und warum es nicht empfohlen wird

Nachteile von Tabellen 1. Tabellen nehmen mehr Byt...