Concat() von kombinierten Feldern in MySQL

Concat() von kombinierten Feldern in MySQL

1. Einleitung

MySQL ist eine relationale Datenbank. Wenn wir sie verwenden, ordnen wir die Attribute von Objekten häufig Spalten zu und speichern sie in Tabellen. Daher sind die Abfrageergebnisse auch separate Attribute ohne jegliche Verarbeitung. Wenn wir den in MySQL zurückgegebenen Ergebnissatz abfragen und die Werte mehrerer Felder (Spalten) zusammen oder nach bestimmten Berechnungen zurückgeben möchten, können wir die von MySQL bereitgestellte Feldberechnungsfunktion verwenden.

Die folgenden zwei Typen werden häufig in Feldberechnungen verwendet:

  • Feldverkettung
  • Felder, die arithmetische Berechnungen durchführen

2. Haupttext

Alle in MySQL implementierten Feldkombinationen können im Client abgeschlossen werden, die Implementierung von Feldkombinationen direkt im MySQL -Server ist jedoch schneller als im Client.

2.1 Feldverkettung

Bereiten Sie eine Benutzertabelle vor und fügen Sie mehrere Datensätze wie folgt ein:

Namen festlegen utf8mb4;

Setzen Sie FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Tabellenstruktur für Benutzer

-- ----------------------------

DROP TABLE, WENN `Benutzer` EXISTIERT;

CREATE TABLE `Benutzer` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Primärschlüssel',

  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'Benutzername',

  `Nation` varchar (255) Zeichensatz utf8 Sortierung utf8_general_ci NULL Standard NULL Kommentar 'Ethnie',

  PRIMÄRSCHLÜSSEL (`id`) MIT BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamisch;

-- ----------------------------

-- Aufzeichnungen des Benutzers

-- ----------------------------

INSERT INTO `user` VALUES (1, 'Benutzername', 'Benutzer');

INSERT INTO `user` VALUES (2, 'Benutzer', 'Benutzer');

INSERT INTO `user` VALUES (3, 'Benutzer', 'Uigurisch');

INSERT INTO `user` VALUES (4, 'Benutzer', 'Benutzer');

Setzen Sie FOREIGN_KEY_CHECKS = 1;

brauchen:

Holen Sie sich den Namen und die ethnische Kombination des Benutzers

Stellungnahme:

mysql> wähle concat(Name, '(',Nation, ')') vom Benutzer;

+---------------------------------+

| concat(Name, '(',Nation, ')') |

+---------------------------------+

| Li Ziba (Han-Nationalität) |

| Zhang San (Hui) |

| Li Si (Uigure) |

| Wang Wu (Mongolisch) |

+---------------------------------+

Analyse:

Hierfür wird die Funktion concat() verwendet. In der Funktion können beliebig viele Elemente kombiniert werden. Diese Elemente können Tabellenfelder, feste Zeichen usw. sein. Die Elemente werden durch getrennt und die Reihenfolge der Kombination entspricht der Reihenfolge der Zeichen in concat() .

Was ist mit dem Feldnamen nach der Kombination?

Aufmerksame Freunde haben festgestellt, dass der Feldname nach der Kombination den gesamten Funktionskörper concat() verwendet. Offensichtlich ist diese Anzeige nicht das, was wir wollen! Wenn Sie den gewünschten Feldnamen angeben möchten, verwenden Sie einfach einen Alias!

mysql> wähle concat(Name, '(',Nation, ')') als Benutzernachricht vom Benutzer;

+------------------+

| Benutzernachricht |

+------------------+

| Li Ziba (Han-Nationalität) |

| Zhang San (Hui) |

| Li Si (Uigure) |

| Wang Wu (Mongolisch) |

+------------------+

Die Verwendung eines Alias ​​erfolgt as , gefolgt vom Feldnamen, den Sie angeben möchten.

2.2 Arithmetische Berechnungen auf Feldern durchführen

Beim Kombinieren von Feldern tun wir oft mehr, als einfach nur Zeichenfolgen zu verketten. Es können auch arithmetische Berechnungen zwischen Feldern erforderlich sein. In diesem Fall müssen wir in MySQL arithmetische Operatoren verwenden.

MySQL stellt die folgenden Additions-, Subtraktions-, Multiplikations- und Divisionsoperatoren bereit:

Betreiber veranschaulichen
+ hinzufügen
- reduzieren
* nehmen
/

Bereiten Sie eine Produkttabelle vor und fügen Sie mehrere Datensätze wie folgt ein:

Namen festlegen utf8mb4;

Setzen Sie FOREIGN_KEY_CHECKS = 0;



-- ----------------------------

-- Tabellenstruktur für Produkt

-- ----------------------------

DROP TABLE, WENN `Produkt` EXISTIERT;

CREATE TABLE `Produkt` (

  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primärschlüssel',

  `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'Produktname',

  `Preis` Dezimalzahl (10, 2) UNSIGNED NOT NULL COMMENT 'Produktpreis',

  `Nummer` int(11) NOT NULL COMMENT 'Produktmenge',

  PRIMÄRSCHLÜSSEL (`id`) MIT BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamisch;

-- ----------------------------

-- Aufzeichnungen des Produkts

-- ----------------------------

INSERT INTO `Produkt` VALUES (1, 'Apple iPhone 13 (A2634)', 6799,00, 22);

INSERT INTO `Produkt` VALUES (2, 'HUAWEI P50 Pro', 6488.00, 88);

INSERT INTO `Produkt` VALUES (3, 'MIX4', 4999,00, 30);

INSERT INTO `Produkt` VALUES (4, 'OPPO Find X3', 3999.00, 15);

INSERT INTO `Produkt` VALUES (5, 'vivo X70 Pro+', 5999,00, 27);

Setzen Sie FOREIGN_KEY_CHECKS = 1;

brauchen:

Abfrage des Gesamtwertes aktueller Lagerprodukte

Stellungnahme:

mysql> wähle Produktname, concat(Preis * Zahl) als Bruttowert vom Produkt;

+-------------------------+----------+

| Produktname | Bruttowert |

+-------------------------+----------+

| Apple iPhone 13 (A2634) | 149578.00 |

| HUAWEI P50 Pro | 570944.00 |

| MIX4 | 149970,00 |

| OPPO Find X3 | 59985,00 |

| vivo X70 Pro+ | 161973,00 |

+-------------------------+----------+

Problem der Operatorreihenfolge:

Operatoren in MySQL haben ebenfalls eine Reihenfolge, die der Reihenfolge der Operationen gewöhnlicher Operatoren entspricht, (* / ) > (+ -) . Bei der Verwendung kombinierter Operatoren müssen Sie auf die Reihenfolge der Operatoren achten. Eine sinnvolle Verwendung von () kann die Ausführungsreihenfolge der Operatoren einschränken.

Beispiel:

mysql> Auswahl concat(12 - 3 * 4);

+--------------------+

| Verkettung(12 - 3 * 4) |

+--------------------+

| 0 |

+--------------------+

1 Zeile im Satz (0,00 Sek.)

mysql> Auswahl concat((12 - 3) * 4);

+----------------------+

| verketten((12 - 3) * 4) |

+----------------------+

| 36 |

+----------------------+

1 Zeile im Satz (0,00 Sek.)

Es ist zu beachten, dass in MySQL , wenn der Dividend 0 ist, keine Ausnahme ausgelöst wird, sondern NULL zurückgegeben wird. Dies liegt daran, dass MySQL den Vorgang abnormal verarbeitet.

mysql> Auswahl concat(12 / 0);

+----------------+

| verketten(12 / 0) |

+----------------+

| NULL |

+----------------+

1 Zeile im Satz, 1 Warnung (0,00 Sek.)

Dies ist das Ende dieses Artikels über concat() in MySQL. Weitere Informationen zu concat() in MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Die verschachtelte Verwendung von Einfügen und Auswählen in MySQL löst das Problem des Einfügens kombinierter Felder
  • MySQL führt mehrere Datenzeilen basierend auf der Funktion group_concat() zusammen
  • Eine kurze Erläuterung der Sortiermethode der Funktion group_concat() in MySQL
  • Zusammenfassung der Verwendung der MySQL-Funktion group_concat()
  • mysql verwendet group_concat(), um mehrere Datenzeilen in einer Zeile zusammenzuführen
  • So verwenden Sie die Mysql GROUP_CONCAT()-Funktion

<<:  Seitenlayout für Bootstrap 3.0-Lernnotizen

>>:  Ubuntu kompiliert Kernelmodule und der Inhalt wird im Systemprotokoll angezeigt

Artikel empfehlen

Node+Socket realisiert einfache Chatroom-Funktion

In diesem Artikel wird der spezifische Code von N...

Zusammenfassung von 6 Lösungen zur Implementierung des Singleton-Modus in JS

Vorwort Heute habe ich das Erzeugungsmuster im En...

Analysieren Sie, wie Uniapp den Schnittstellendomänennamen dynamisch erhält

Hintergrund Der Domänenname der Schnittstelle ist...

Die einfachste Formularimplementierung des Flexbox-Layouts

Flexibles Layout (Flexbox) erfreut sich zunehmend...

Lernen, React-Gerüste zu bauen

1. Komplexität des Front-End-Engineerings Wenn wi...

Detaillierte Erläuterung der MySQL-Lösung zur USE DB-Überlastung

Wenn wir auf einen Fehler stoßen, denken wir oft ...

Offlineinstallation von Centos7.2 mysql5.7.18.tar.gz

Aufgrund der Netzwerkisolation kann MySQL nicht m...

Hinweise zur Speicherverwaltung von Linux-Kernel-Gerätetreibern

/********************** * Linux-Speicherverwaltun...

Skriptbeispiel zum Starten und Stoppen von Spring-Boot-Projekten in Linux

Es gibt drei Möglichkeiten, ein Springboot-Projek...

Warum MySQL die Verwendung von Nullspalten mit Standardwerten nicht empfiehlt

Die Antwort, die Sie oft hören, ist, dass die Ver...

Detaillierter Installationsprozess von Jenkins unter Linux

Inhaltsverzeichnis 1. Installieren Sie JDK 2. Jen...

Über React Native, das keine Verbindung zum Simulator herstellen kann

React Native kann native iOS- und Android-Apps ba...