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

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

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

а как правильно написать запрос?
...
Рейтинг: 0 / 0
Как удалить одним запросом буквы, а цифры оставить
    #39835758
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
REGEXP_REPLACE(product.sku, '[^[:digit:]]', '')
...
Рейтинг: 0 / 0
Как удалить одним запросом буквы, а цифры оставить
    #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
Как удалить одним запросом буквы, а цифры оставить
    #39835899
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnGera,

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

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


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