2017-05-15 16:10 GMT+12:00 David G. Johnston <david.g.johns...@gmail.com>:
> On Sunday, May 14, 2017, Patrick B <patrickbake...@gmail.com> wrote: > >> >> Demo: http://dbfiddle.uk/?rdbms=postgres_9.6&fiddle=3c3a3f870eb4d0 >> 02c5b4200042b25669 >> <http://dbfiddle.uk/?rdbms=postgres_9.6&fiddle=c2fbb7da5a2397f7cda5126ed239c080> >> >> The rows that I should be getting are: >> >> 5 /testfile/client/10/attachment/1000/master/ 10 >> >> 7 /testfile/client/10/attachment/unassigned/file/1001/master 10 >> >> 8 /testfile/client/10/attachment/unassigned/file/1002/master 10 >> >> What am I doing wrong? >> > > Without you explaining why 6 and 9 are invalid it's impossible to say how > you should modify your regex to exclude them. You may find positive and > negative look-ahead useful though. > > David J. > I thought I have already explained it. Here it goes again. Demo page is: http://dbfiddle.uk/?rdbms=postgres_9.6&fiddle=ea61e7e1859bdb7f297f853a9dc0e3 d0 As you can see, there is a lot of variations for the same file_id (1000). File_id (1001/1002) is a new unassigned file, different from the others. I wanna be able to get ONLY the 'master' variation ( /testfile/client/10/attachment/1000/master/ ) and the unassigned files variations [if any] (/testfile/client/10/attachment/unassigned/file/1001/master | /testfile/client/10/attachment/unassigned/file/1002/master). So on the demo above, only id IN (5,9,10) are valid for me. The SELECT that I used as an example is not returning me ONLY the data I need, instead, it is returning (almost) everything. To summarize: I wanna use a pattern matching the only returns these rows: /testfile/client/10/attachment/1000/master/ /testfile/client/10/attachment/unassigned/file/1001/master /testfile/client/10/attachment/unassigned/file/1002/master What can I do to fix it? Thanks P.