У меня есть таблица, которая содержит несколько тысяч строк.Эти результаты были получены путем запроса API со списком имен.
Для поиска «John Snow» API вернул бы все записи в своей базе данных, которая содержала токен «john» и токен «snow».».Так что у меня много ложных срабатываний.
То, что я хотел бы сделать, это установить поднабор моей таблицы так, чтобы у меня были только записи, в которых столбец title
(тот, который содержал строку, сопоставленную с моей строкой поиска) содержит ВСЕ элементы искомой строки независимо от порядка .
Я пытался
select * from table where 'john snow' ~* title;
select * from table where 'john snow' ILIKE '%' || title || '%';
оба работают, но только если столбец title
содержит ровно john snow
в этом порядке,
До
str_searched | title
-------------+-------
john snow | snow white
john snow | john wick
john snow | SNOW john
john snow | john Snow
john snow | Mr john snow
После
str_searched | title
-------------+-------
john snow | SNOW john
john snow | john Snow
john snow | Mr john snow