Manchmal stellen Sie möglicherweise fest, dass die in einer Datenbankspalte zurückgegebene Textmenge zu lang ist. Vielleicht möchten Sie nur einen kurzen Ausschnitt dieses Textes zurückgeben, gefolgt von Auslassungspunkten oder drei Punkten.
Glücklicherweise ist dies in MariaDB relativ einfach.
Drei Perioden
Hier ist ein Beispiel für das Anhängen von drei Punkten (anstelle eines Auslassungszeichens) an eine Spalte, wenn die Anzahl der Zeichen in dieser Spalte eine bestimmte Länge überschreitet:
SELECT
IF(CHAR_LENGTH(ProductDescription) > 32,
CONCAT(LEFT(ProductDescription, 32),"..."),
ProductDescription) AS "Short Desc",
ProductDescription AS "Full Desc"
FROM Products;
Ergebnis:
In diesem Fall verwenden wir den CHAR_LENGTH()
Funktion innerhalb eines IF()
Funktion, um festzustellen, ob die Zeichenfolge lang genug ist, um sie zu kürzen. Wir verwenden dann das LEFT()
Funktion innerhalb der CONCAT()
Funktion, um ein paar Punkte an die Kurzbeschreibung anzuhängen.
Ein echtes Auslassungszeichen verwenden
Und hier ist es noch einmal, aber mit einem tatsächlichen Auslassungszeichen anstelle von drei Punkten:
SELECT
IF(CHAR_LENGTH(ProductDescription) > 32,
CONCAT(LEFT(ProductDescription, 32),"…"),
ProductDescription) AS "Short Desc",
ProductDescription AS "Full Desc"
FROM Products;
Ergebnis:
Die Auslassungspunkte benötigen weniger Platz. Dies liegt daran, dass es sich um ein einzelnes Zeichen handelt, im Gegensatz zu den drei Punkten (die drei separate Zeichen sind).
Alle Zeilen abschneiden, unabhängig von der Länge
Wenn Sie alle Zeilen unabhängig von ihrer Länge abschneiden müssen, müssen Sie IF()
nicht einschließen Funktion.
In diesem Fall kann der Code folgendermaßen abgekürzt werden:
SELECT
CONCAT(LEFT(ProductDescription, 15), '...') AS "Short Desc",
ProductDescription AS "Full Desc"
FROM Products;
Ergebnis:
+--------------------+-------------------- ----------------+| Kurze Beschreibung | Vollständige Beschreibung |+--------------------+-------------------- ----------------+| Lila. Einschließen... | Lila. Inklusive Tragebox für Linkshänder. || Blau. Enthält ... | Blau. Inklusive Tragebox für Rechtshänder. || Ungefähr 45 ... | Ungefähr 45 Minuten Wartezeit. || Ungefähr 30 ... | Ungefähr 30 Minuten Wartezeit. || Holzgriff. ... | Holzgriff. Kostenlose Weingläser. || Orange. Einschließen... | Orange. Inklusive Ersatzfinger. || Gebunden mit Reben... | Gebunden mit Reben. Sehr kaubar. || Braune Keramik m... | Braune Keramik mit massivem Griff. |+--------------------+----------------------------------- --------------+
Lassen Sie die Auslassungspunkte weg
Und wenn Sie die Auslassungspunkte/drei Punkte nicht einmal benötigen, können Sie sie sogar noch weiter verkürzen, etwa so:
SELECT
LEFT(ProductDescription, 15) AS "Short Desc",
ProductDescription AS "Full Desc"
FROM Products;
Ergebnis: