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 Tomcat bereitstellen 1. Herunt...
Inhaltsverzeichnis 1. Zähldaten gehen verloren Lö...
Vorwort Einführung Lombok ist ein praktisches Too...
Mit dem Laufschriftelement können Sie einfache Gle...
In diesem Artikel wird der spezifische Code des W...
In letzter Zeit besteht eine wachsende Nachfrage ...
1. Laden Sie das komprimierte Tomcat-Paket von de...
Bei der Installation in MySQL 8.0.16 können einig...
Win10-Installation (überspringen, falls bereits i...
Als wir nginx eingeführt haben, haben wir nginx a...
Inhaltsverzeichnis Bereitstellung mehrerer Anwend...
1. CDN Es ist die am häufigsten verwendete Beschl...
Inhaltsverzeichnis 1. Die Rolle der Nginx-Prozess...
Wenn ich Vue lerne und immer Webpack-Anweisungen ...
Dieser Artikel beschreibt anhand eines Beispiels ...