Vinzenz Mai: (mysql) Suche innerhalb einer Textfeldzeile

Beitrag lesen

Hallo,

Ich habe in meiner DB in einem Textfeld die Koordinaten eines Polygons gespeichert. Pro Zeile ein Koordinatenpaar, das mit Komma getrennt ist:

1.2445,15.2211
2.4451,45.1121
1.2149,39.9906
1.0121,12.6573

das ist gar keine gute Idee. Speichere jede Koordinate in einer eigenen Spalte, verwende dafür einen geeigneten Datentyp, z.B. DECIMAL. Daten sollten atomar vorliegen, siehe Wikipedia, erste Normalform.

Nun möchte ich nach den Datensätzen suchen, die einen Polygon-Eckpunkt in der Nähe eines bereits bestehenden haben.

Das mache ich mit " WHERE Koord LIKE '%1.2%,15.2%' "

und nimm als Bedingung einen einfachen Pythagoras, wobei auch dieser aufwendig ist.

Bei Deinem derzeitigen kaputten Tabellendesign kannst Du mit Zeichenkettenfunktionen am Komma trennen, in Zahlen umwandeln und die gleiche Berechnung durchführen. LIKE halte ich für ungeeignet, es sei denn Du verknüpfst mehrere LIKE-Bedingungen mit OR.

Freundliche Grüße

Vinzenz