172 похожих чатов

Всем привет, подскажите, необходимо реализовать поиск/фильтрацию по нескольким колонкам в

таблице по неограниченному кол-ву неточных значений, задаваемых юзером. Что почитать на эту тему?

6 ответов

9 просмотров

Для начала, раскройте определение термина "неточное значение" (несмотря на то, что можно примерно догадываться, что это значит) — желательно с примером. Далее проделать аналогичные мероприятия касательно "поиска/фильтрации по нескольким колонкам".

mrvyhomk- Автор вопроса

Всем привет сформулирую вопрос более точно: Есть две таблицы: create table users (id uuid not null primary key, user_name text not null, created_at timestamp not null default now()) create table payments (id uuid primary key not null, user_id uuid not null references users (id) on delete cascade, label text not null) Пользователь желает отфильтровать всех юзеров по одному или нескольким доступным фильтрам (ids - [{*uuid1*}, {*uuid2*}], usernames - ["str_or_sub_str1", "str_or_sub_str1"] , created_from - timestamp, created_to - timestamp, payments_more_then - bigint, labels - ["str_or_sub_str1","str_or_sub_str1"], limit - bigint, offset - bigint) В общем то вопрос - в какую сторону копать, о чём почитать?

mrvyhomk
Всем привет сформулирую вопрос более точно: Есть д...

> created_at timestamp not null default now() Не делайте так: https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_timestamp_.28without_time_zone.29 > отфильтровать всех юзеров Т.е. в результате будут только поля users? > usernames - ["str_or_sub_str1", "str_or_sub_str1"] А что значит or_sub_str1? Вхождение подстроки в название (с произвольной позиции)? > created_from - timestamp, created_to - timestamp, Что это значит? Наличие (хотя бы одного) payment у данного user в заданном диапазоне timestamps? > payments_more_then - bigint А это что значит (и да, правильно more-than (больше, чем, а не больше, тогда)? Количество payments или что (никаких сумм в примере нет — это упущение или нет)? > limit - bigint, offset - bigint А ORDER BY всегда какой-то фиксированный?

mrvyhomk- Автор вопроса
Yaroslav Schekin
> created_at timestamp not null default now() Не ...

- Не делайте так: Учту, спасибо. - Т.е. в результате будут только поля users? Не только, так же будет общее колл-во платежей для конкретного юзера. - А что значит or_sub_str1? Вхождение подстроки в название (с произвольной позиции)? Да, всё верно - подстрока с произвольной позиции. - Что это значит? Наличие (хотя бы одного) payment у данного user в заданном диапазоне timestamps? Дата создания юзеров в заданном диапазоне дат. - А это что значит (и да, правильно more-than (больше, чем, а не больше, тогда)? Количество payments или что (никаких сумм в примере нет — это упущение или нет)? Кол-во платежей юзеа больше чем заданное число. - А ORDER BY всегда какой-то фиксированный? Да фиксированный order by created_at desc Спасибо большое за наводящие вопросы.

mrvyhomk- Автор вопроса

Осталось только понять как реализовать поиск строки(-ок) целиком/подстроки(-ок) с произвольной позиции, а так, в целом, направление понятно.

mrvyhomk
Осталось только понять как реализовать поиск строк...

username LIKE '%подстрока%' / username ILIKE '%подстрока%' . Или операторы: List of operators Name | Description -------+------------------------------------------------------------------- ~ | matches regular expression, case-sensitive ~* | matches regular expression, case-insensitive ~~ | matches LIKE expression ~~* | matches LIKE expression, case-insensitive

Похожие вопросы

Обсуждают сегодня

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
20
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
Или имеется ввиду именно что медленнее работа компилятора?
Куся 🌿⃤ __UKS
9
У меня есть скрипт написанный на crystal, который крутится на vm с 512mb ram, и он время от времени вылетает из-за нехватки памяти, поэтому я увеличил память до 2gb, но поведе...
Сергій
1
let sum = [1, 2, 3].map { String($0) }.flatMap { Int($0) }.reduce(0, +) let sum = [1, 2, 3].map { (num: Int) -> String in String(num) }.flatMap { (str: String) -> Int? in Int...
Yakov
7
Карта сайта