So possibly a better solution would be to create a temporary table and then do a subquery on that table?

->Ben

On Sep 4, 2006, at 7:37 AM, Visolve DB Team wrote:

Hi

The ANY keyword, which must follow a comparison operator, means "return TRUE if the comparison is TRUE for ANY of the values in the column that the subquery returns

In has 2 forms:
1.  IN (subquery).  [The word IN is an alias for = ANY (subquery)].
2. IN (list of values seperated by comma)

Hence the exact syntax to use is:
Select <fields> from < table> where <fieldname> = ANY ( select <fieldname> from <table>);

Ref: http://dev.mysql.com/doc/refman/5.0/en/any-in-some- subqueries.html

Thanks
ViSolve DB Team

----- Original Message -----
From: "Ben Lachman" <[EMAIL PROTECTED]>
To: <mysql@lists.mysql.com>
Sent: Sunday, September 03, 2006 10:33 AM
Subject: IN & ANY subqueries


I have a string comparison that I would like to do against a short
list of constant strings.

at the moment I am using the syntax

SELECT id FROM t1 WHERE name IN('s1', 's2', 's3', ...);

However, this limits me to exact matches and I'd like to move to a
caparison expersion that lets me match names that contain any of the
list.  The MySQL docs state that 'IN()' is an alias to '= ANY()'
however when I substitute' = ANY' for IN I get a parse error.  What
I'd like to do is write something like (although I figure there may
be a better way to do the comparison that I am not thinking of):

SELECT id FROM t1 WHERE name LIKE ANY('%s1%', '%s2%', '%s3%', ...);

Does anyone know a way to do this?

Thanks,

->Ben



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to