2017-08-21 5 views
0

J'ai un tableau avec points qui est un LINESTRING. J'ai une rangée là-dedans qui a quelques points dans cette colonne.Comment ajouter des points à LINESTRING SQL

J'ai un deuxième ensemble de points sous la forme a d'une chaîne, je voudrais ajouter ces points à la ligne existante.

Existe-t-il un moyen de le faire dans MySQL sans sélectionner les points comme texte, fusionner manuellement les chaînes puis mettre à jour points dans la rangée?

J'ai essayé ST_Union, mais cela me rend un MULTILINESTRING, que je ne veux pas

Répondre

3

MYSQL fonction spatiale ne comprend pas de solution pour l'ajout d'un LINESTRING, mais il existe une solution que j'ai essayé de toi.

  1. Obtenir la valeur

    ensemble @gval = (sélectionner ST_AsText (route) à partir de spatial où id = 5);

I nommé le tableau comme 'spatial' et ajouté une colonne en tant que 'route', qui est de type de données linestring

  1. annexées, le chaîne en utilisant la fonction de remplacement et en entrant le laton (ou le point) requis

    set @gval = replace (@gval, ')', ', 8.5684875 76.8520767)'); Mise à jour spatial set route = GEOMFROMTEXT (@gval) où id = 5;

Cela fonctionne bien pour moi.