Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Funktionsweise der RPAD()-Funktion in MySQL

In MySQL das RPAD() Mit dieser Funktion können Sie den rechten Teil einer Zeichenfolge mit einem oder mehreren Zeichen auffüllen.

So funktioniert es:Sie geben die aufzufüllende Zeichenfolge, die Länge der Auffüllung sowie die für die Auffüllung zu verwendende Zeichenkette an.

Syntax

Die Syntax lautet wie folgt:

RPAD(str,len,padstr)

Wobei str ist die aufzufüllende Zeichenfolge, len die gewünschte Länge der Zeichenfolge in Zeichen ist, nachdem alle Auffüllungen angewendet wurden, und padstr ist die Zeichenfolge, mit der es aufgefüllt werden soll.

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel für das Auffüllen des rechten Teils einer Zeichenfolge mit einem Ausrufezeichen:

SELECT RPAD('Cat', 6, '!') AS Result;

Ergebnis:

+--------+
| Result |
+--------+
| Cat!!! |
+--------+

In diesem Beispiel ist das zweite Argument 6 , was bedeutet, dass die gesamte Zeichenfolge 6 Zeichen lang sein muss, nachdem alle Auffüllungen angewendet wurden. Das dritte Argument gibt an, welches Zeichen zum Auffüllen verwendet werden soll.

Wenn wir also in diesem Fall nur ein Ausrufezeichen wollen, können wir das tun:

SELECT RPAD('Cat', 4, '!') AS Result;

Ergebnis:

+--------+
| Result |
+--------+
| Cat!   |
+--------+

Beispiel 2 – Mehrere Zeichen

Sie sind nicht auf nur einen einzigen Charakter beschränkt. Sie können eine Zeichenfolge mit einer beliebigen Anzahl von Zeichen auffüllen.

Zum Beispiel könnten wir das vorherige Beispiel nehmen und vor dem Ausrufezeichen ein Leerzeichen einfügen:

SELECT RPAD('Cat', 5, ' !') AS Result;

Ergebnis:

+--------+
| Result |
+--------+
| Cat !  |
+--------+

Beachten Sie, dass wir auch die Zeichenanzahl auf 5 erhöht haben um das zusätzliche Zeichen unterzubringen.

Hier ist ein weiteres Beispiel mit anderen Zeichen:

SELECT RPAD('Dog', 7, 'gone') AS Result;

Ergebnis:

+---------+
| Result  |
+---------+
| Doggone |
+---------+

Beispiel 3 – Zweites Argument ist zu klein

Wenn der Wert des zweiten Arguments zu klein ist, erhalten Sie möglicherweise kein Padding:

SELECT RPAD('Cat', 3, '!') AS Result;

Ergebnis:

+--------+
| Result |
+--------+
| Cat    |
+--------+

In anderen Fällen könnten Sie am Ende damit enden, dass der Füllstring gekürzt wird, oder Sie könnten sogar den Originalstring kürzen:

SELECT 
  RPAD('Dog', 6, 'gone'),
  RPAD('Dog', 2, 'gone');

Ergebnis:

+------------------------+------------------------+
| RPAD('Dog', 6, 'gone') | RPAD('Dog', 2, 'gone') |
+------------------------+------------------------+
| Doggon                 | Do                     |
+------------------------+------------------------+

Beachten Sie, dass diese Beispiele nur zu Demonstrationszwecken dienen. In den meisten Fällen würden Sie RPAD() nicht verwenden einfach zwei Wörter miteinander verbinden. Verwenden Sie dazu am besten CONCAT() stattdessen.

Beispiel 4 – Ein Datenbankbeispiel

Hier ist ein Beispiel für die Auswahl von Daten aus einer Datenbank und das Auffüllen auf der rechten Seite:

SELECT ArtistName, RPAD(ArtistName, 20, '.')
FROM Artists;

Ergebnis:

+------------------------+---------------------------+
| ArtistName             | RPAD(ArtistName, 20, '.') |
+------------------------+---------------------------+
| Iron Maiden            | Iron Maiden.........      |
| AC/DC                  | AC/DC...............      |
| Allan Holdsworth       | Allan Holdsworth....      |
| Buddy Rich             | Buddy Rich..........      |
| Devin Townsend         | Devin Townsend......      |
| Jim Reeves             | Jim Reeves..........      |
| Tom Jones              | Tom Jones...........      |
| Maroon 5               | Maroon 5............      |
| The Script             | The Script..........      |
| Lit                    | Lit.................      |
| Black Sabbath          | Black Sabbath.......      |
| Michael Learns to Rock | Michael Learns to Ro      |
| Carabao                | Carabao.............      |
| Karnivool              | Karnivool...........      |
| Birds of Tokyo         | Birds of Tokyo......      |
| Bodyjar                | Bodyjar.............      |
+------------------------+---------------------------+