Re: Modify Query, or sift through results?

From: Date: Thu, 28 Jun 2001 14:29:55 +0000
Subject: Re: Modify Query, or sift through results?
References: 1 2  Groups: php.db 
Request: Send a blank email to php-db+get-9928@lists.php.net to get a copy of this message
My Last post was incorrect - sorry. My correct sql statement would be rlike "(^|;)Midwest(;|$)". Someone mentioned using Distinct before, which wouldn't work because Distinct acts on a field, to my understanding, so "Northwest;East" would be different than "Northwest;South" so it wouldn't really give me the results I'm looking for. Someone else mentioned FIND_IN_STR, which I had previously tried. That will find 'North' in 'Northeast' because 'North' is in the string. Doing a Reg Exp allows me to find exactly what I'm looking for, but with a little flexability to account for the semicolons and what not. Hopefully someone else has learned something too :) Joe Jason Stechschulte wrote: > > On Wed, Jun 27, 2001 at 08:54:04AM -0500, Joseph Koenig wrote: > > I've got a script that searches a db every night and sends out e-mail if > > it finds something a person would be interested in, based on criteria > > they gave us. The problem is that I have one field that stores regions > > of the country in a very unpleasant way. It stores them as: > > > > Northeast;West;South > > > > So all of the regions for one record go into one field. The problem is > > that when searching that, if someone has a preference of 'North', I > > dont want to pull records that have 'Northeast', as would happen with > > the above example. Is there a way to modify the MySQL query so as to > > find only 'North', keeping in mind that 'North' may be the 3rd in a > > list > > of semi-colon separated regions? Or do I need to sift through the > > results in PHP to clean them up? Thanks, > > You can certainly have MySQL do the work. I can't modify your query, > because you didn't give it to us, but I can give you an example. > > <?php > $sql = select * from your_table where your_column rlike "North(;|$)"; > ?> > > This will do a regular expression match. If either North with a semicolon > directly after it or North and the end of the string is found, the > row will be returned. > > -- > Jason Stechschulte > jpstech@unoh.edu > -- > If you're going to define a shortcut, then make it the base [sic] darn > shortcut you can. > -- Larry Wall in <199709241628.JAA08908@wall.org>

« previous php.db (#9928) next »