powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / select-ом можна перебрать все значения поля "масив" ???
4 сообщений из 4, страница 1 из 1
select-ом можна перебрать все значения поля "масив" ???
    #32262567
quwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select-ом можна перебрать все значения поля, если поле масив неопределенного размера?
Например системная таблица pg_group :
groname | grosysid | grolist
---------+----------+-------------
root | 2 | {1018}
stat | 1 | {1018,1019,1024}
inet | 2 | {1019}
oper | 2 | {1018,1025}
Как select-ом определить к каким групам пренадлежит user=1019.
Или это можна зделать, попроще, какой то системной функцией по имени usera?
...
Рейтинг: 0 / 0
select-ом можна перебрать все значения поля "масив" ???
    #32262597
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего это з делать пересмотрев структуру Вашей базы. Ваша структура нарушает 1НФ. Если этого по каким-нибудь дурацким прицинам з делать нельзя, посмотрите сюда http://www.sql.ru/articles/article.aspx?aid=1309 может придут в голову какие умные мысли...
...
Рейтинг: 0 / 0
select-ом можна перебрать все значения поля "масив" ???
    #32287798
d_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
d_d
Гость
Павел Воронцов,
ну вы и загнули, ведь pg_group - системная таблица постгреса, не желаете исправить???
...
Рейтинг: 0 / 0
select-ом можна перебрать все значения поля "масив" ???
    #32287820
d_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
d_d
Гость
Но в общем надо читать доки, вот что там:

To search for a value in an array, you must check each value of the array. This can be done by hand (if you know the size of the array):

SELECT * FROM sal_emp WHERE pay_by_quarter[1] = 10000 OR
pay_by_quarter[2] = 10000 OR
pay_by_quarter[3] = 10000 OR
pay_by_quarter[4] = 10000;

However, this quickly becomes tedious for large arrays, and is not helpful if the size of the array is unknown. Although it is not part of the primary PostgreSQL distribution, there is an extension available that defines new functions and operators for iterating over array values. Using this, the above query could be:

SELECT * FROM sal_emp WHERE pay_by_quarter[1:4] *= 10000;

To search the entire array (not just specified columns), you could use:

SELECT * FROM sal_emp WHERE pay_by_quarter *= 10000;

In addition, you could find rows where the array had all values equal to 10 000 with:

SELECT * FROM sal_emp WHERE pay_by_quarter **= 10000;

To install this optional module, look in the contrib/array directory of the PostgreSQL source distribution.
Так что ставь модуль и живи спокойно :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / select-ом можна перебрать все значения поля "масив" ???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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