Using regexp_matches in the WHERE clause - Mailing list pgsql-sql

From Thomas Kellerer
Subject Using regexp_matches in the WHERE clause
Date
Msg-id k8vmbm$1fg$1@ger.gmane.org
Whole thread Raw
Responses Re: Using regexp_matches in the WHERE clause  (Willem Leenen <willem_leenen@hotmail.com>)
Re: Using regexp_matches in the WHERE clause  (David Johnston <polobo@yahoo.com>)
List pgsql-sql
Hi,

I stumbled over this question on Stackoverflow
   http://stackoverflow.com/questions/13564369/postgresql-using-column-data-as-pattern-for-regexp-match

And my initial reaction was, that this should be possible using regexp_matches.

So I tried:
   SELECT *   FROM some_table   WHERE regexp_matches(somecol, 'foobar') is not null;

However that resulted in: ERROR: argument of WHERE must not return a set

Hmm, even though an array is not a set I can partly see what the problem is
(although given the really cool array implementation in PostgreSQL I was a bit surprised).


So I though, if I convert this to an integer, it should work:
  SELECT *  FROM some_table  WHERE array_length(regexp_matches(somecol, 'foobar'), 1) > 0

but that still results in the same error.

But array_length() clearly returns an integer, so why does it still throw this error?


I'm using 9.2.1

Regards
Thomas





pgsql-sql by date:

Previous
From: Marcin Krawczyk
Date:
Subject: locks problem
Next
From: Marcin Krawczyk
Date:
Subject: Re: locks problem