Ich habe einen Datensatz von Städtenamen mit ihren entsprechenden Breiten/Längen, die ich in eine MySQL-Tabelle geladen habe:Wie berechne ich die Breiten-/Längengraddaten korrekt in MySQL?
city_id | Stadtname | Breitengrad DEZIMAL (9,6) | Länge DEZIMAL (9,6)
Typische Breiten-/Längengrade können wie folgt aussehen: 54.284758/32.484736.
Ich bekomme jedoch nur Werte mit einer Skala von 2, um korrekt in meiner Tabelle zu erscheinen, mit anderen Worten, das Äquivalent von DECIMAL (5,2). Die Daten werden von einer Text-CSV hochgeladen, die aus OpenOffice Calc für UTF-8-Zwecke exportiert wurde. Ich weiß, dass OpenOffice Probleme mit Dezimalstellen hat, aber die volle Breite/Länge sind sicherlich in der exportierten CSV. Wenn ich die CSV-Datei mit dem Editor öffne, sind die Daten in Ordnung.
Kann jemand sehen, was ich falsch machen könnte?
Danke.
UPDATE: Habe es funktioniert, danke für den ganzen Eingang. Ich habe alles von Grund auf neu erstellt, eine neue Schemadatei (ich benutze ein ORM), einen neuen CSV-Export, eine neue Tabelle, ein neues LOAD DATA INFILE und es funktioniert mit der korrekten Dezimalausgabe. Schlägt mich.
Wenn Sie in Ihrer Tabelle "inkorrekt" sagen, meinen Sie, wenn Sie an einer MySQL-Eingabeaufforderung "SELECT * FROM mytable" eingeben? Oder hast du einen Zuschauer? – Tenner
@Tenner .... Ich benutze MySQL Workbench, aber das Ergebnis ist das gleiche, wenn ich eine Koordinate über PHP ziehen. – Tom
Da die Datentypen "DECIMAL (9,6)" sind und die CSV-Datei korrekt ist, wenn Sie sie in Notepad anzeigen, ist etwas damit zu tun, was Sie zum Importieren der Daten verwenden. Sehen Sie sich das MySQL LOAD DATA INFILE an, falls es das Problem umgeht: http://dev.mysql.com/doc/refman/5.1/en/load-data.html –