У меня есть следующий оператор postgresql:
SELECT 1 = ANY( jsonb_array_elements_text('[2, 1, 3]') );
В основном у меня есть строка, которая содержит массив целых чисел, разделенных запятой, например: [1, 2, 3]
, и иногда этот массив также может быть пустым, например:[]
.Теперь я хочу написать запрос (как часть более крупного запроса), где я мог бы выяснить, соответствует ли элемент каким-либо целым числам в тексте.Например:
SELECT 1 = ANY( jsonb_array_elements_text('[2, 1, 3]') ); -- Should return true
SELECT 1 = ANY( jsonb_array_elements_text('[]') ); -- should return false
Однако приведенный выше запрос завершается неудачно с сообщением об ошибке:
ERROR: op ANY/ALL (array) requires array on right side
LINE 1: SELECT 1 = ANY( jsonb_array_elements_text('[2, 1, 3]') );
Любая помощь, как я могу извлечь целочисленный массив из текста, чтобы я мог использоватьв состоянии соединения?
Я использую postgres 9.4, если это имеет значение.