Postgres, есть ли способ упростить мое предложение where без использования unnest и string_to_array? - PullRequest
0 голосов
/ 19 октября 2019

Следующий SQL работает для меня и дает мне результаты, которые я хочу:

select postdomain from post where postdomain not in (select unnest (string_to_array('youtube.com|twitter.com' , '|'))) ;

Мне интересно, есть ли способ просто where деталь?

Например, если мне не нужно точное совпадение и требуется регистр contains без учета регистра, этот более простой SQL работает без вещей unnest и string_to_array:

select postdomain from post where postdomain !~* 'youtube.com|twitter.com' ;

Есть ли способ получить точное совпадение аналогично

Ответы [ 2 ]

2 голосов
/ 19 октября 2019

Нет необходимости в гнезде, вы можете использовать массив напрямую:

select postdomain 
from post 
where postdomain <> ALL (string_to_array('youtube.com|twitter.com' , '|')) 
0 голосов
/ 19 октября 2019

Прикрепите шаблон:

where postdomain !~* '^youtube.com$|^twitter.com$'

^ соответствует началу строки и $ концу.

...