Как работать с первым элементом массива? - PullRequest
1 голос
/ 10 мая 2011

SELECT regexp_matches ('abc', '[0-9] *');

Приведенный выше запрос возвращает text[] и нужно проверить, нашел ли он какой-либо (iне важно, какой) совпадает или нет.

Так что в случае выше, я получаю {""}, как я могу получить "логическое" значение, которое говорит мне, если оно совпадает с чем-то или ничего?

Это, похоже, не работает:

SELECT regexp_matches ('abc', '[0-9] *') = '{}';

1 Ответ

4 голосов
/ 10 мая 2011

Используйте оператор ~ :

SELECT 'abc' ~ '[0-9]*';

В качестве альтернативы вы можете вытащить первый элемент следующим образом:

SELECT (regexp_matches('abc', '[0-9]*'))[1] = ''; -- True if it didn't match

Обратите внимание на дополнительные скобкии что массив индексируется начиная с 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...