Question

J'ai un ensemble de données de noms de ville avec leurs latitudes correspondant / longitudes que j'ai chargé dans une table MySQL, comme suit:

CITY_ID | CITY_NAME | latitude DECIMAL (9,6) | longitude DECIMAL (9,6)

coordonnées latitude typique / longitude pourrait ressembler à ceci:. 54,284758 / 32,484736

Cependant, je n'obtenir des valeurs avec une échelle de 2 à apparaître correctement dans ma table, autrement dit, l'équivalent de DECIMAL (5,2). Les données sont téléchargées à partir d'un fichier CSV de texte qui a été exporté à partir de OpenOffice Calc à des fins UTF-8. Je sais que OpenOffice a quelques problèmes avec décimales, mais la pleine latitude / longitudes sont certainement dans le CSV exporté. Si j'ouvre le CSV avec le Bloc-notes, les données sont très bien.

Quelqu'un peut-il voir ce que je pourrais faire mal?

Merci.

Mise à jour: Got it travail, merci pour la toute entrée. Je recréée tout à partir de zéro, nouveau fichier de schéma (j'utilise un ORM), nouvelle exportation CSV, nouvelle table, nouvelle INFILE LOAD DATA, et il fonctionne avec la sortie décimale correcte. Ça me dépasse.

Était-ce utile?

La solution

Cela peut être surpuissant pour vos besoins, mais lorsque les données géographiques de travail, vous voudrez peut-être envisager d'utiliser MySQL Données spatiales .

Je vais ajouter que le type de données que vous utilisez actuellement est suffisant pour représenter les données que dans votre fichier CSV. Il y a soit quelque chose dans votre importateur qui est le coupaient au moment de l'importation, ou tout ce que vous utilisez pour afficher les données sont tronquer.

Autres conseils

Je suggère d'utiliser une chaîne de type de données telles que varchar pour le stockage Lat, Long. Je travaille sur une application qui utilise beaucoup de ces coordonnées et je ne l'ai pas couru dans des problèmes de stockage comme une chaîne. Le stockage comme un numéro que vous courrez dans les problèmes de précision.

Juste quelque chose à considérer.

Pourquoi ne pas vous déclarez que les champs comme ayant une double type dans votre table MySQL? Les qualifications pour le nombre de chiffres et de chiffres après la virgule sont en option.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top