Как вставить пробел в слово, используя строковую функцию MySQL? - PullRequest
1 голос
/ 02 апреля 2012

Как бы я вставил пробел в слово, используя строку MySQL функционировать?

В моем столбце GPS сохранена координата GPS как таковая

S2829.080,E2850.683

Я бы хотел, чтобы результат был:

S28 29.080,E28 50.683

Любой совет высоко ценится.

Спасибо

ОБНОВЛЕНИЕ РЕШЕНИЯ:

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

SELECT CONCAT_WS(' ', LEFT(SPLIT_STR("S2829.080,E2850.683",',',1),3),MID(SPLIT_STR("S2829.080,E2850.683",',',1),4,LENGTH(SPLIT_STR("S2829.080,E2850.683",',',1)))) AS
latitude;

SELECT CONCAT_WS(' ', LEFT(SPLIT_STR("S2829.080,E2850.683",',',1),3),MID(SPLIT_STR("S2829.080,E2850.683",',',2),4,LENGTH(SPLIT_STR("S2829.080,E2850.683",',',2)))) AS
longitude;

С тех пор я "нормализовал" мою базу данных и изменил форму JS, добавив 2 столбца для долготы и широты.

Спасибо всем

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Попробуйте ниже:

использование concat(), left(), mid() mysql функции:

update table set columnname=concat(LEFT(columnname,3),' ',MID(columnname,4,LENGTH(columnname)))

Предполагая, что ваше пространство всегда будет после 3 символов в значении столбца

Кстати, он не будет работать, если вы храните разделенные запятыми значения в одном столбце. и это недостаток такой схемы таблиц.

Вы должны Normalize ваша база данных

Вы должны сделать родительскую дочернюю таблицу вместо значений, разделенных запятыми

0 голосов
/ 02 апреля 2012

Если вам нужно разделить первые 3 символа, а остальные - в одну сторону

SELECT CONCAT_WS( " ", LEFT( columname 3 ) , SUBSTRING( columnname FROM 4 ) ) FROM tablename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...