On 01/26/2012 04:00 AM, John Tuliao wrote:
I seem to have a problem with a specific query:The inside query seems to work on it's own: select prefix from john_prefix where strpos(jpt_test.number,john_prefix.prefix) = '1' order by char_length(john_prefix.prefix) desc limit 1 but when I execute it with this: UPDATE jpt_test set number = substring(number from length(john_prefix.prefix)+1) from john_prefix where prefix in ( select prefix from john_prefix where strpos(jpt_test.number,john_prefix.prefix) = '1' order by char_length(john_prefix.prefix) desc limit 1 ) ; table contents are as follows john_prefix table: prefix --------- 123 234 jpt_test table: number ----------- 1237999999 0234999999 <<< supposed to have no match 2349999999 Am I missing something here? Any help will be appreciated.
I'm going to guess that it's because you didn't use a separate alias for the FROM in the correlated subquery.
Doesn't STRPOS() return INTEGER, not TEXT? -- Lew Honi soit qui mal y pense. http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg -- Sent via pgsql-sql mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql
