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

So installieren Sie MySQL 5.7 aus dem Quellcode in einer CentOS 7-Umgebung

Dieser Artikel beschreibt, wie MySQL 5.7 aus dem ...

Eine kurze Diskussion über den Vater-Sohn-Werttransfer in Vue3

Inhaltsverzeichnis Vom Vater zum Sohn: 1. Übergeb...

WeChat-Applet implementiert Anmeldeschnittstelle

Die Anmeldeoberfläche des WeChat-Applets ist zu I...

Vue3 Vue-Ereignisbehandlungshandbuch

Inhaltsverzeichnis 1. Grundlegende Ereignisbehand...

MySQL-Optimierung: So schreiben Sie hochwertige SQL-Anweisungen

Vorwort Im Internet gibt es zahlreiche Informatio...

Analyse der geplanten Aufgaben und Ereignisplanungsbeispiele von MySQL

Dieser Artikel beschreibt anhand von Beispielen d...

Detaillierte Erläuterung des Linux-Befehls zur Änderung des Hostnamens

Linux-Befehl zum Ändern des Hostnamens 1. Wenn Si...

Mysql-Datenbankdesign - Analyse von drei Paradigmenbeispielen

Drei Paradigmen 1NF: Felder sind untrennbar; 2NF:...