2 Stimmen

Normalisierung des Datums in MySQL, wenn eine Spalte kommagetrennte Elemente enthält

Ich habe eine Datenbank mit einem Feld, das eine kommagetrennte Liste enthält, die ich normalisieren möchte. Das Feld würde etwa so aussehen...

16-BIT, 20 MHz, MICROPROCESSOR, PQFP100

Es wird nicht immer die gleiche Anzahl von durch Kommas getrennten Elementen enthalten, aber das einzige Element, das mich interessiert und das ich herausziehen und normalisieren möchte, wird immer das letzte sein, im obigen Fall "PQFP100".

Ich glaube, ich verstehe die Sql, um die Spalte aus und in eine andere Tabelle zu bekommen, aber ich weiß nicht, wie ich nur den PQFP100-Teil davon auswählen kann. Hier ist, was ich bis jetzt habe...

insert ignore into part_pkg (pkg_name)
select part_desc
from part_raw
group by pkg_name;

Ich denke, ich brauche etwas auf dem "from part_raw" Teil, aber ich weiß nicht einmal, wo ich anfangen soll :)

Ich hoffe, das ist klar genug. Danke

3voto

Arion Punkte 30771

Wenn Sie dies auswählen:

select substring_index('16-BIT, 20 MHz, MICROPROCESSOR, PQFP100',',',-1)

werden Sie dies erhalten:

PQFP100

Die Einfügeanweisung muss also in etwa so aussehen:

insert ignore into part_pkg (pkg_name)
select substring_index(part_desc',',',-1)
from part_raw
group by pkg_name;

0voto

Gustavo Vargas Punkte 2319

Versuchen Sie dies:

insert ignore into part_pkg (pkg_name)
select SUBSTRING_INDEX(part_desc, ',', -1)
from part_raw
group by pkg_name;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X