Re: mysql Pattern Matching
| From: | CPT John W. Holmes | Date: | Thu, 04 Sep 2003 12:53:16 +0000 |
| Subject: | Re: mysql Pattern Matching | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-161662@lists.php.net to get a copy of this message | ||
From: "Ralph Guzman" <ralph213@sbcglobal.net>
> I know this question is best for the mySQL mailing list, but I am unable
> to subscribe to their list at this moment so perhaps somebody here can
> help me out.
>
> I have a table with a field where amenities are listed together using a
> comma delimiter like: pool,spa,fitness-center
>
> To search this table I use a query that looks something like this:
>
> SELECT * FROM properties WHERE amenities LIKE '%pool%' AND amenities
> LIKE '%spa%' AND amenities LIKE '%fitness-center%'
>
> This works, however let's say the user chooses to search for more
> amenities. This means the query would need multiple 'AND amenities LIKE
> '%____%' statements.
>
> Is there a better way to write this?
You could use FIND_IN_SET().
SELECT * FROM properties WHERE FIND_IN_SET('pool',amenities) AND
FIND_IN_SET('spa',amenities) AND ...
It'll still grow as the number of amentities grow, but there's no getting
around that.
---John Holmes...