[MySQL] Koordinaten aus einer Spalte in mehrere Spalten übertragen.

stso

Mitglied
Hallo,
ich hab eine Tabelle in der 2D- Koordinaten gespeichert sind. Dummerweise beide in einer Spalte [x,y]:

z.B.:
[1,4]
[5.2, 1.4]
[3.72, 1.56]

Ich möchte nun gerne die x und y Koordinate einzeln abfragen.
Das könnte man zum Beispiel mit einem regulären Ausdruck machen:

^(\d*?.+\d*?),(\d*?.+\d*?)$

Und dann mit $1 auf x und mit $2 auf y zugreifen. Aber MySQL unterstützt reguläre Ausdrücke nur sehr mäßig, soweit ich das verstanden habe. Bitte korrigiert mich, falls ich da was falsch verstanden habe.
Gibt es eine Möglichkeit innerhalb von MySQL auf x und y getrennt zuzugreifen? Das ist das mit einer anderen Sprache machen könnte ist mir klar. Aber mich würde interessieren ob es mit MySQL geht.
Ich möchte am Ende die beiden Koordinaten in eine neue Tabelle aber in getrennte Spalten übertragen.

Code:
INSERT INTO neu(
    `neu`.`x`,
    `neu`.`y`
)
SELECT
    ...
    `alt`.`xy`
    ...
FROM alt;
--
SELECT `alt`.`xy` FROM `alt`;
SELECT `neu`.`x`,`neu`.`y` FROM `neu`;
--
 
Regexp ist hier mit Kanonen auf Spatzen schiessen....
SQL:
SELECT 
	SUBSTRING_INDEX(xy, ',', 1) AS x,
	SUBSTRING_INDEX(xy, ',', -1) AS y
FROM alt
 
Zuletzt bearbeitet von einem Moderator:
Hallo yaslaw,
das ist genau die Funktion die ich gesucht habe! :)
Die funktioniert auch bei 3D Koordinaten und Farbangaben mit 4 Werten (RGBA).
Danke!
 
Zurück