Dieser Artikel fasst gängige Betriebstechniken für MySQL-Datenbanken zusammen. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: 1. Abfragefelder mit gleichem Namen in unterschiedlichen Tabellen (Tabellenverbindungsabfragebedingungsartefakt) Verwenden Sie ein Informationsschema. Wählen Sie * aus Spalten aus, in denen Spaltenname = "Feldname" ist. 2. Gesamtzahl der Abfragedatensätze Wählen Sie SQL_CALC_FOUND_ROWS * aus der Tabelle, wobei 1 = 1; Die Gesamtzahl der Datenzeilen kann ermittelt werden SET @RowCount=gefundene_Zeilen(); 3. Paging der Datenabfrage gespeicherter Prozeduren Vordefinierte Variablen: /*Fehlercode*/ SETZEN @RetCode='1'; /*Fehlermeldung*/ SETZEN @RetVal='1'; /*Gibt die Anzahl der Zeilen zurück*/ Setzen Sie @RowCount='0'; /*Seitenzahl*/ Setzen Sie @PageCount='0'; /*Anzahl der Anzeigen pro Seite*/ SETZEN Sie @CurrentItem=0; /*Anzahl der Anzeigen pro Seite*/ SET @PageSize=arg_Seitengröße; /*Seitenzahl*/ SET @PageCurrent=arg_page_current; SET @SqlExe='Wählen Sie * aus Tabelle aus, wobei 1=1'; Eingabeparameter: arg_page_size int, arg_page_current int WENN (@PageCurrent IST NICHT NULL && @PageSize IST NICHT NULL) DANN SET @CurrentItem = (@PageCurrent-1)*@Seitengröße; SETZEN @SqlExe=CONCAT(@SqlExe,'LIMIT ', @PageSize,' OFFSET ', @CurrentItem); ANDERS SET @SqlExe=CONCAT(@SqlExe,' '); ENDE, WENN; Anweisung aus @SqlExe vorbereiten; Anweisung ausführen; Freigabe, Vorbereitungs-STMT; WENN(@RowCount NICHT NULL IST && @RowCount != 0) DANN WENN(@PageSize ist null)dann SETZEN Sie @PageSize = @RowCount; ENDE, WENN; SET @PageCount = Decke(@Zeilenanzahl/@Seitengröße); ANDERS SETZEN @RowCount = 0; Setzen Sie @PageCount auf 1. ENDE, WENN; 4. Stringbezogene Operationen 1. Fangen Sie die Zeichenfolge von links ab links (Str, Länge) Beschreibung: links (abgeschnittenes Feld, abgeschnittene Länge) Beispiel: Wählen Sie links (Inhalt, 200) als abstrakt aus meinem_Inhalt_t 2. Fangen Sie die Zeichenfolge von rechts ab rechts (Str, Länge) Beschreibung: rechts (abgeschnittenes Feld, abgeschnittene Länge) Beispiel: wähle right(content,200)als abstract aus my_content_t 3. Zeichenfolge abfangen Teilzeichenfolge (str, pos) Teilzeichenfolge (Zeichenfolge, Position, Länge) veranschaulichen: Teilzeichenfolge (das abgefangene Feld, an dessen Position das Abfangen beginnt) Teilzeichenfolge (das abgefangene Feld, die Nummer, bei der mit dem Abfangen begonnen werden soll, und die Abfanglänge) Beispiel: wähle Teilzeichenfolge (Inhalt, 5) als abstrakt aus meinem_Inhalt_t Wählen Sie Teilzeichenfolge (Inhalt, 5.200) als Zusammenfassung aus meinem_Inhalt_t (Hinweis: Wenn die Anzahl der Ziffern eine negative Zahl wie -5 ist, handelt es sich um die Länge von der letzten Ziffer bis zum Ende der Zeichenfolge oder die gekürzte Länge.) 4. Zeichenfolge nach Schlüsselwort abfangen Teilzeichenfolgenindex (Zeichenfolge, Trennzeichen, Anzahl) Beschreibung: substring_index (das abgefangene Feld, Schlüsselwort, die Häufigkeit, mit der das Schlüsselwort vorkommt) Beispiel: Wählen Sie substring_index("blog.csdn.net",".",2) als Abstract aus my_content_t Ergebnis: blog.csdn (Hinweis: Wenn die Anzahl der Vorkommen eines Schlüsselworts eine negative Zahl wie -2 ist, wird rückwärts bis zum Ende der Zeichenfolge gezählt.) Funktionseinführung: SUBSTRING(str,pos) , SUBSTRING(str VON pos) SUBSTRING(str,pos,len) , SUBSTRING(str VON pos FÜR len) Das Format ohne Längenargument gibt eine Teilzeichenfolge der Zeichenfolge str zurück, beginnend an der Position pos. Das Format mit einem len-Argument gibt eine Teilzeichenfolge mit der Länge len Zeichen aus der Zeichenfolge str zurück, beginnend an der Position pos. Das Format für die Verwendung von FROM ist die Standard-SQL-Syntax. Es ist auch möglich, für pos einen negativen Wert zu verwenden. In diesem Fall beginnt die Position der Teilzeichenfolge beim Pos-Zeichen am Ende der Zeichenfolge und nicht am Anfang der Zeichenfolge. In Funktionen des folgenden Formats kann für „pos“ ein negativer Wert verwendet werden. MySQL-Zeichenfolgen-Groß-/Kleinschreibung konvertieren Es gibt zwei Paare von deMySQL-Funktionen zur Konvertierung von Groß- und Kleinschreibung: mysql>Wählen Sie niedriger aus ('DDD'); Ergebnis: ddd mysql> wähle oberes Ende('ddd'); Ergebnis: DDD mysql> wähle lcase('DDD'); Ergebnis: ddd mysql> wähle ucase('ddd'); Ergebnis: DDD Normalerweise wähle ich 5. Zeiterfassungsbezogene Vorgänge deklariere _LastWeekStartTime date; – Startzeit der letzten Woche deklariere _LastWeekEndTime date; – Endzeit der letzten Woche -- Da das System den Sonntag als ersten Tag der Woche verwendet, müssen Sie 1 abziehen setze @A = date_add(curdate(), Intervall -1 Tag); - Berechnen Sie das Datum des Montags dieser Woche setze @B = Unterdatum( @A,Datumsformat(@A,'%w')-1); -- Da das System den Sonntag als ersten Tag der Woche verwendet, müssen wir 2 abziehen, um den letzten Tag der Vorwoche (Samstag der Vorwoche) zu erhalten. setze @C = date_add(@B, Intervall -2 Tage); setze _LastWeekStartTime = (Unterdatum( @C,Datumsformat( @C,'%w')-1)); setze _LastWeekEndTime = (date_add(subdate( @C,date_format( @C,'%w')-1), Intervall 6 Tage)); -- Holen Sie sich das aktuelle Datum. 1 ist Sonntag, 2 ist Montag und so weiter. SET @nowdate=(wählen Sie DAYOFWEEK(NOW())); SET @NowD=Fall @nowdate wenn 1 dann 'Sonntag' wenn 2 dann 'Montag' wenn 3 dann 'Dienstag' wenn 4 dann 'Mittwoch' wenn 5 dann 'Donnerstag' wenn 6 dann 'Freitag' wenn 7 dann 'Samstag' Ende; -- die Sonntagszeit muss neu berechnet werden wenn (DATE_FORMAT(CURDATE(),'%w')=0) dann SET @curmon=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')+6)); SETZEN @cursun=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w'))); anders -- Startzeit (Montag) SETZEN @curmon=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')-1)); -- Endzeit (Sonntag) SETZEN @cursun=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')-7)); 6. Sortierfähigkeiten CREATE TABLE-Test ( id INT PRIMARY KEY nicht null auto_increment, val nvarchar (50) NICHT NULL ); INSERT INTO test(val) VALUES ('0'); INSERT INTO test(val) VALUES ('1'); INSERT INTO test(val) VALUES ('2'); INSERT INTO test(val) VALUES ('3'); WÄHLEN SIE * aus Test; -- Passen Sie die Reihenfolge basierend auf der Priorität der ID 2 0 1 3 an. SELECT * FROM test ORDER BY instr('2013',id); -- Prinzipielles Beispiel SET @ORDBYD='2013'; Wählen Sie '2', instr(@ORDBYD,'2') als `INDEX` Union Wählen Sie '0', instr(@ORDBYD,'0') als `INDEX` Union Wählen Sie '1', instr(@ORDBYD,'1') als `INDEX` Union Wählen Sie '3', instr(@ORDBYD,'3') als `INDEX`; instr-Funktion (aus der Baidu-Enzyklopädie der instr-Funktionssyntax) instr(Zeichenfolge1, Zeichenfolge2, Startposition, n-tes_Auftreten) string1 : Die Quellzeichenfolge, in der gesucht werden soll. Beachten: Der Positionsindex beginnt bei 1. Wenn String2 nicht in String1 gefunden wird, gibt die Instr-Funktion 0 zurück. Beispiel: SELECT instr('syranmo','s') FROM dual; -- gibt 1 zurück SELECT instr('syranmo','ra') FROM dual; -- gibt 3 zurück SELECT instr('syran mo','at',1,2) FROM dual; -- gibt 0 zurück Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: So installieren Sie Docker unter Windows Server 2016
Inhaltsverzeichnis Vorwort 1. Array-Traversal-Met...
Nachdem das Image erfolgreich erstellt wurde, kan...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
So erhalten Sie den Container-Startbefehl Der Con...
Siehe: https://www.jb51.net/article/112612.htm Üb...
1. Einleitung Wie wir alle wissen, muss im Anwend...
Inhaltsverzeichnis 1. JavaScript verwendet Canvas...
Füge im CSS-Style des Elements, welches die Hinte...
Inhaltsverzeichnis 1. MySQL herunterladen 2. Entp...
Vorwort Wir alle wissen, dass MySQL die Server-ID...
Das Betriebssystem Win10 MySQL ist die 64-Bit-ZIP...
Fehler Beim Herstellen einer Verbindung zu MySQL ...
Der erste Schritt besteht darin, die kostenlose I...
Vorwort Wir alle wissen, dass Startups zunächst m...
Inhaltsverzeichnis einführen Beispiel Zusammenfas...