Vorwort Manchmal stößt man auf Geschäftstabellen, die nicht dem Entwurfsmuster der ersten Normalform folgen. Das heißt, mehrere Attributwerte werden in einer Spalte gespeichert. Wie in der folgenden Tabelle gezeigt
Es gibt im Allgemeinen zwei allgemeine Anforderungen (Testdaten finden Sie am Ende des Artikels): 1. Holen Sie sich alle nicht wiederkehrenden Werte, wie
Das SQL lautet wie folgt: Wählen Sie deutlich (Teilstring_index (Teilstring_index (a.col,',',b.help_topic_id+1),',',-1)) aus (select group_concat(distinct `value`) as col from `row_to_col`) als verbinden mysql.help_topic als b auf b.help_topic_id < (char_length(a.col) - char_length(replace(a.col,',',''))+1) 2. Zeigen Sie jeden Wert und den entsprechenden Primärschlüssel an, beispielsweise
Das SQL lautet wie folgt: wähle a.pk, Teilstring_index(Teilstring_index(a.col,',',b.help_topic_id+1),',',-1) aus (wählen Sie `value` als col,pk aus `row_to_col`) als verbinden mysql.help_topic als b auf b.help_topic_id < (char_length(a.col) - char_length(replace(a.col,',',''))+1) Umsetzungsideen: Anforderung 1: 1. Verwenden Sie die Funktion group_concat, um die Werte der Wertespalte zu einer durch Kommas getrennten Zeichenfolge zu verketten, und verwenden Sie dann die Funktion substring_index, um die Zeichenfolge abzufangen Beachten: Anforderung 2: Die Idee ist im Grunde die gleiche wie Anforderung 1, außer dass die endgültige Abfrage anders ist Beteiligte Funktionen: Länge: Gibt die Anzahl der von der Zeichenfolge belegten Bytes zurück. Dies ist die Länge des berechneten Felds. Ein chinesisches Schriftzeichen oder chinesisches Symbol wird als drei Zeichen gezählt, eine Zahl, ein Buchstabe oder ein englisches Symbol als ein Zeichen. Testdaten: Tabelle löschen, wenn `row_to_col` vorhanden ist; CREATE TABLE `row_to_col` ( `pk` int(11) NICHT NULL AUTO_INCREMENT, `Wert` varchar(255) DEFAULT NULL, PRIMÄRSCHLÜSSEL (`pk`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; INSERT INTO `row_to_col` VALUES ('1', 'ET,AT'); INSERT INTO `row_to_col` VALUES ('2', 'AT,BT'); INSERT INTO `row_to_col` VALUES ('3', 'AT,DT'); INSERT INTO `row_to_col` VALUES ('4', 'DT,CT,AT'); siehe: Dies ist das Ende dieses Artikels zum Konvertieren einer Spalte mit durch Kommas getrennten Werten in Zeilen und Spalten in MySQL. Weitere Informationen zum Konvertieren durch Kommas getrennter Werte in MySQL in Zeilen und Spalten finden Sie in den vorherigen Artikeln von 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:
|
<<: Detailliertes Tutorial zum PyCharm- und SSH-Remote-Access-Server-Docker
>>: Implementierung der Optimierung für das Laden ausgewählter Mehrfachdaten in Element
Vorwort: Mybatis-Sonderzeichenverarbeitung, Verar...
MySQL kann bei der Installation festgelegt werden...
Inhaltsverzeichnis Geschäftsszenario: Wirkungsdem...
Ich plane, meine eigene Website zu erstellen, als...
Erstellen einer Tabelle Tabelle erstellen Bestell...
Vorwort Als mein Team das Steuersystemmodul entwi...
Die Funktionen der drei Attribute Flex-Grow, Flex...
Lösung für „Curl-config konnte nicht ausgeführt w...
Einführung in Swap Swap (d. h. Swap-Partition) in...
<br />Vielleicht sind Sie gerade in ein Unte...
1. px px ist die Abkürzung für Pixel, eine relati...
Hier sind einige Beispiele, wie ich diese Eigensch...
Vorwort: Apropos Sandboxen: Wir denken vielleicht...
Inhaltsverzeichnis Zusammenfassung Einfaches Beis...
0. Als ich dieses Dokument erstellte, war es unge...