Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать пробел после запятой, команда / 10 сообщений из 10, страница 1 из 1
19.03.2019, 08:24
    #39788156
Vbifyz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
Здравствуйте.

К примеру имеем описание:
Просторная ,двухкомнатная квартира,с косметическим ,ремонтом,прямо около метро.

Надо сделать команду, чтобы запятушки встали правильно. То есть между буквой и запятой пробела быть не должно. И наоборот, между запятой и буквой должен быть пробел.

Сделал командами:
UPDATE `tbl_post` SET `textobj` = REPLACE(textobj, ',', ', ');
UPDATE `tbl_post` SET `textobj` = REPLACE(textobj, ' ,', ', ');

Но проблема в том, что каждый раз, при вводе команды, она добавляет пробел после запятой. В результате получается, что может быть сколько угодно пробелов, типа "Просторная, двухкомнатная".
Поэтому надо добавить условие, что пробел после запятой добавлять только в случае, если сразу после запятой стоит какой нибудь символ (кроме пробела).

Подскажите, пожалуйста, какое условие добавить?
...
Рейтинг: 0 / 0
19.03.2019, 08:44
    #39788164
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
Код: sql
1.
2.
UPDATE `tbl_post` 
SET `textobj` = REPLACE(REPLACE(REPLACE(textobj, ' ,', ','), ', ', ','), ',', ', ');
...
Рейтинг: 0 / 0
19.03.2019, 08:48
    #39788165
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
Для MySQL ver. 8+

Код: sql
1.
2.
UPDATE `tbl_post` 
SET `textobj` = REGEXP_REPLACE(textobj, ' *, *', ', ');
...
Рейтинг: 0 / 0
19.03.2019, 09:26
    #39788183
Vbifyz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
Akina
Код: sql
1.
2.
UPDATE `tbl_post` 
SET `textobj` = REPLACE(REPLACE(REPLACE(textobj, ' ,', ','), ', ', ','), ',', ', ');



Все равно, когда заново запускаешь после прогона, то каждый раз происходят замены.
...
Рейтинг: 0 / 0
19.03.2019, 09:27
    #39788184
Vbifyz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
AkinaДля MySQL ver. 8+

Код: sql
1.
2.
UPDATE `tbl_post` 
SET `textobj` = REGEXP_REPLACE(textobj, ' *, *', ', ');


Это не работает. Показывает ошибку.
...
Рейтинг: 0 / 0
19.03.2019, 09:37
    #39788188
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
VbifyzВсе равно, когда заново запускаешь после прогона, то каждый раз происходят замены.:facepalm:
А результат посмотреть "после прогона" - не?

Vbifyzне работает. Показывает ошибку.
А версию сервера посмотреть - не?
...
Рейтинг: 0 / 0
19.03.2019, 11:09
    #39788257
Vbifyz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
Версия точно не 8.

Там показывается, что изменено столько то тысяч строк. Какой еще результат? Визуально на сайте меняется. Но и менялось еще и с моей командой. Только эту команду надо периодически запускать. А если при каждом запуске будет лишний пробел добавляться, это неприемлемо.
По логике при повторном прогоне, если он сразу после первого, должно показываться ноль изменений. Ведь так?
...
Рейтинг: 0 / 0
19.03.2019, 11:36
    #39788281
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
VbifyzА если при каждом запуске будет лишний пробел добавлятьсяНу посмотри ж ты наконец, что запрос-то делает!!! чего чушь-то городить?

VbifyzТам показывается, что изменено столько то тысяч строк.Где - там? как именно - процитируй ответ сервера на 2 последовательных (с неким промежутком времени, желательно) выполнения запроса.

Vbifyzкоманду надо периодически запускать.Если в таблице появляются новые записи или корректируются существующие - ясен пень. Или пиши триггер, который будет убирать косяки.

VbifyzПо логике при повторном прогоне, если он сразу после первого, должно показываться ноль изменений. Ведь так?
На UPDATE-запрос при отсутствии ошибок сервер отвечает фразой
Код: sql
1.
Rows matched: XXX  Changed: YYY  Warnings: ZZZ


Три числа... Где именно ты желаешь увидеть ноль?
...
Рейтинг: 0 / 0
19.03.2019, 11:57
    #39788300
Vbifyz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
https://yadi.sk/i/VsBs9uMxzbKSmg

Может так понятней будет
...
Рейтинг: 0 / 0
19.03.2019, 12:12
    #39788317
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать пробел после запятой, команда
VbifyzМожет так понятней будетНет, не будет. Я понятия не имею, какое из трёх чисел выводится. Догадываюсь, что не последнее.

Выполняйте запрос через консольного клиента.

PS. Записи, имеющие пробел перед запятой, будут лишаться таких пробелов по одной штуке за запуск, т.е. всё устаканится только тогда, когда все такие пробелы будут удалены.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать пробел после запятой, команда / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]