MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

2 Möglichkeiten zum Verketten von Zeichenfolgen und Zahlen in MariaDB

Hier sind zwei Möglichkeiten, Strings und Zahlen in MariaDB zu verketten:

  • Verwenden Sie den CONCAT() Funktion, die ihre Argumente verkettet.
  • Verwenden Sie den Pipe-Verkettungsoperator (|| ), die ihre Operanden verkettet.

Nachfolgend finden Sie jeweils Beispiele.

Der CONCAT() Funktion

Der CONCAT() Funktion verkettet ihre Argumente. Obwohl dies eine Zeichenfolgenfunktion ist, kann sie numerische (und binäre Zeichenfolgen-)Argumente verarbeiten. Jeder numerische Wert wird in seine äquivalente binäre Zeichenfolgenform umgewandelt (im Gegensatz zu MySQL, das eine nichtbinäre Zeichenfolge zurückgibt).

Beispiel:

SELECT CONCAT('Agent', 47);

Ergebnis:

Agent47

Leerzeichen können hinzugefügt werden, entweder durch Hinzufügen des Leerzeichens zu der vorhandenen Zeichenfolge oder durch Verketten mit einem dritten Argument, das nur aus einem Leerzeichen besteht:

SELECT 
    CONCAT('Agent ', 47) AS "Option 1",
    CONCAT('Agent', ' ', 47) AS "Option 2";

Ergebnis:

+----------+----------+
| Option 1 | Option 2 |
+----------+----------+
| Agent 47 | Agent 47 |
+----------+----------+

Wenn Sie nicht möchten, dass der numerische Wert in seine äquivalente binäre Zeichenfolgenform konvertiert wird, können Sie ihn explizit vor der Verkettungsoperation umwandeln.

Beispiel:

SELECT CONCAT('Agent', CAST(47 AS char));

Ergebnis:

Agent47

Der Pipe-Verkettungsoperator (|| )

Dieses Beispiel verwendet den Verkettungsoperator (|| ):

SELECT 'Agent ' || 47;

Ergebnis:

Agent 47

In diesem Fall habe ich ein Leerzeichen an das erste Argument angehängt.

Beachten Sie, dass der Pipe-Verkettungsoperator zuerst aktiviert werden muss, bevor Sie ihn auf diese Weise verwenden können. Standardmäßig behandelt MariaDB || als Synonym für das OR logischer Operator. Der Versuch, ihn als Verkettungsoperator zu verwenden, kann zu unerwarteten Ergebnissen führen, wenn Sie ihn nicht zuerst als Pipe-Verkettungsoperator aktivieren.