Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как удалить одним запросом буквы, а цифры оставить / 8 сообщений из 8, страница 1 из 1
09.07.2019, 22:33
    #39835717
AnGera
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
Всем доброго времени суток!
Много видел информации, но все какие-то конкретизированные под каждую тему. А вот обобщенной, которая сможет помочь многим не нашел. Так вот вопрос следующий: Например. есть таблица в БД_1 по названием: PRODUCT в ней есть столбец SKU . Как написать запрос чтобы из SKU удалить только буквы ну и различные символы типа пробела, слэша и т.п., а оставить только цифры.

или наоборот удалить только цифры, а буквы оставить.

Заранее всем отзывчивым благодарен!
...
Рейтинг: 0 / 0
09.07.2019, 22:43
    #39835720
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
С помощью REGEXP_REPLACE можно попробовать.
...
Рейтинг: 0 / 0
09.07.2019, 23:05
    #39835729
AnGera
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
miksoft,

а как правильно написать запрос?
...
Рейтинг: 0 / 0
10.07.2019, 07:10
    #39835758
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
Код: sql
1.
REGEXP_REPLACE(product.sku, '[^[:digit:]]', '')
...
Рейтинг: 0 / 0
10.07.2019, 12:08
    #39835894
AnGera
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
Akina,

не получается. пишет ошибку: Ошибка
SQL запрос:


REGEXP_REPLACE(`product_id`.`sku`, '[^[:digit:]]', '')
Ответ MySQL: Документация

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REGEXP_REPLACE(`product_id`.`sku`, '[^[:digit:]]', '')' at line 1
...
Рейтинг: 0 / 0
10.07.2019, 12:15
    #39835899
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
AnGera,

Переходите на более свежую версию MySQL. Эта функция появилась начиная с 8 версии.
...
Рейтинг: 0 / 0
10.07.2019, 12:26
    #39835909
AnGera
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
miksoft,

А если на виртуальном сервере стоит старая версия, то как быть иначе?
...
Рейтинг: 0 / 0
10.07.2019, 14:24
    #39835966
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить одним запросом буквы, а цифры оставить
Ну тады лабай UDF... что-нить типа
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE FUNCTION extract_digits (txt CHAR(64))
RETURNS CHAR(16)
DETERMINISTIC 
BEGIN
  DECLARE res VARCHAR(16) DEFAULT '';
  WHILE txt != '' DO
    IF LEFT(txt,1) RLIKE '[0-9]' THEN
      SET res = CONCAT(res, LEFT(txt,1));
    END IF;
    SET txt = SUBSTRING(txt, 2);
  END WHILE;
RETURN res;
END;


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


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