[UPHPU] final answer...
John
lists at strictlyrockymountain.com
Sun Apr 2 01:53:34 MST 2006
> Wouldn't it be a little simpler to do the following:
>
> SELECT DISTINCT RIGHT(email, LENGTH(email) - LOCATE('@', email)) AS
> domain FROM table ORDER BY domain
>
> - Josh
Hey Josh or anyone, did you try your query above? I just tried it on a
list of email addresses of a customer - which is not very clean. I mean
that the email address field didn't used to be verified as being the right
format etc, and your query gives off a different result than the "LEFT()"
query does. I would have expected the two to produce the same results as
they look like they do the same thing.
LEFT() query:
SELECT DISTINCT REVERSE(LEFT(REVERSE(email),LOCATE('@',REVERSE(email)) -
1)) AS domain
RIGHT() query:
SELECT DISTINCT RIGHT(email, LENGTH(email) - LOCATE('@', email)) AS domain
FROM table ORDER BY domain
For instance, an email entered is "babybear3776yhahoo.com". Obviously
missing the "@" sign and yahoo spelled wrong. With the LEFT() query this
email is not in the result output, which would seem correct since LOCATE
dosn't ever find the "@". But with the RIGHT() query it shows up. Try it
out. Any ideas why the RIGHT() results show it, it's using LOCATE to find
the "@" also.
Thanks
John
More information about the UPHPU
mailing list