Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как проверить что строка состоит только из цисел и запятых? / 8 сообщений из 8, страница 1 из 1
16.03.2021, 14:17
    #40054026
lr2
lr2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
Добрый день.

Нужно сделать ограничение чтобы в поле записывались только числа и запятые, например:
1
2
1,2
1,2,3

и тп

недопустимы

один
два
один и два
и т.п.




как запятую вставить проверку - все просто:

Код: sql
1.
CREATE TABLE test(f1 text CHECK(f1 LIKE '%,%') );







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

Помогите пожалуйста в этом.
...
Рейтинг: 0 / 0
16.03.2021, 14:26
    #40054031
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
lr2,

для начала ответь те на вопрос допустимы ли строки вида

Код: plaintext
1.
2.
3.
4.
5.
,,,
,,2
2,,
1,,2
2,
,1

и тд и тп?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
16.03.2021, 14:32
    #40054035
lr2
lr2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
Maxim Boguk
lr2,

для начала ответь те на вопрос допустимы ли строки вида

Код: plaintext
1.
2.
3.
4.
5.
,,,
,,2
2,,
1,,2
2,
,1

и тд и тп?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


допустимы.
...
Рейтинг: 0 / 0
16.03.2021, 14:53
    #40054049
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
Регулярное выражение. Типа такого:
Код: plsql
1.
CHECK(f1 ~ '^[0-9,]+$')



ЗЫ. Чукча не проверятель.
...
Рейтинг: 0 / 0
16.03.2021, 14:57
    #40054055
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
Код: sql
1.
CREATE TABLE test(f1 text CHECK(string_to_array(f1,',')::bigint[] is not null) );



ну и подумать над вопросом не хранить ли именно массив.
...
Рейтинг: 0 / 0
16.03.2021, 15:00
    #40054056
lr2
lr2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
Alexander A. Sak
Регулярное выражение. Типа такого:
Код: plsql
1.
CHECK(f1 ~ '^[0-9,]+$')



ЗЫ. Чукча не проверятель.



спасибо !
...
Рейтинг: 0 / 0
16.03.2021, 15:00
    #40054058
lr2
lr2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
Melkij
Код: sql
1.
CREATE TABLE test(f1 text CHECK(string_to_array(f1,',')::bigint[] is not null) );



ну и подумать над вопросом не хранить ли именно массив.


Ого, так даже круче!

Он ведь проверит еще формируется ли из этого массив.


Большое спасибо!
...
Рейтинг: 0 / 0
16.03.2021, 15:14
    #40054064
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить что строка состоит только из цисел и запятых?
lr2
Melkij
Код: sql
1.
CREATE TABLE test(f1 text CHECK(string_to_array(f1,',')::bigint[] is not null) );



ну и подумать над вопросом не хранить ли именно массив.


Ого, так даже круче!

Он ведь проверит еще формируется ли из этого массив.


Большое спасибо!


Вы уж как то решите
или автордопустимы.
или авторОн ведь проверит еще формируется ли из этого массив.

Так как это взаимно противоречивые требования.


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


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