Re: SELECT question (splitting a field)
От | Madison Kelly |
---|---|
Тема | Re: SELECT question (splitting a field) |
Дата | |
Msg-id | 46DDB96F.80101@alteeve.com обсуждение исходный текст |
Ответ на | Re: SELECT question (splitting a field) (Richard Huxton <dev@archonet.com>) |
Ответы |
Re: SELECT question (splitting a field)
|
Список | pgsql-general |
Richard Huxton wrote: > Madison Kelly wrote: >> nmc=> SELECT 'Y' AS local FROM domains WHERE '@'||dom_name IN >> ('mkelly@test.com'); >> local >> ------- >> (0 rows) >> >> Not work? > > I don't think IN does what you think it does. It's not a substring-test, > but a set test: > > SELECT 1 WHERE 'x' IN ('a','b','c','x'); > SELECT a FROM foo WHERE b IN (SELECT z FROM bar WHERE frozzled<>wamble); > > You could mess around with substring() and length() or I'd use LIKE. > > If it's just a domain you're looking for though, might be most efficient > to strip the leading part off your value with regexp_replace(). Yeah, that was my problem. I thought I was using the section following the '@'. =/ I've been using Postgres for a while now, but only recently getting into some of the fancier stuff. Until now, I've usually written the program using PgSQL so I could manipulate the data as I needed. Now I am using PgSQL as a backend for a few other applications so I am restricted to using PgSQL to manipulate the data. It's all left me feeling quite n00bish again. ;) I did figure out a query that worked: SELECT 'Y' AS local FROM domains d, users u WHERE u.usr_dom_id=d.dom_id AND u.usr_email||'@'||d.dom_name IN ('mkelly@test.com'); Though this may not be the most efficient. In my case, the 'usr_email' is the LHS of the '@' sign and 'dom_name' is the domain name. If I wanted to use (I)LIKE, how would I have matched just the domain section of 'mkelly@test.com' in 'dom_name'? I'll go read up, now that I've got some key words to search the docs on. Thanks kindly! Madi
В списке pgsql-general по дате отправления: