0
У меня есть таблица с массивами, с которыми я хочу сопоставлять. Согласование работ с использованием &&
оператора:Фильтр и порядок PostgreSQL по массиву
SELECT * FROM table WHERE data && ARRAY['foo','bar'];
id | data
---+----------
1 | {foo}
2 | {bar}
6 | {bar,foo}
Следующая вещь, которую я хочу сейчас, также отсортировать их в порядке, они в этом массиве, что-то вроде:
SELECT * FROM table WHERE data && ARRAY['foo','bar'] ORDER BY data && ARRAY['foo','bar'];
id | data
---+----------
1 | {foo}
6 | {bar,foo}
2 | {bar}
это возможно ?
Возможно, что-то вроде 'ORDER BY position ('foo' в array_to_string (data, ',')), position ('bar' в array_to_string (data, ','))'. – JimmyB
@Patrick 'data' является столбцом' TEXT [] '. –
@HannoBinder выглядит как решение, но что, если я не знаю длины массива, с которым я сравниваюсь. В моем случае я выбираю эти данные сначала из другого столбца/таблицы. –