Re: [PHP-DB] Modify Query, or sift through results?

2001-06-29 Thread Joseph Koenig

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
 [EMAIL PROTECTED]
 --
 If you're going to define a shortcut, then make it the base [sic] darn
 shortcut you can.
  -- Larry Wall in [EMAIL PROTECTED]

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DB] Modify Query, or sift through results?

2001-06-28 Thread Steve

Couldn't you useSELECT  DISTINCT  for this?

http://www.mysql.com/doc/S/E/SELECT.html




- Original Message - 
From: Joseph Koenig [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, June 27, 2001 8:54 AM
Subject: [PHP-DB] Modify Query, or sift through results?


 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,
 
 Joe
 
 -- 
 PHP Database Mailing List (http://www.php.net/)
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]
 
 


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DB] Modify Query, or sift through results?

2001-06-28 Thread Dobromir Velev

Hi,
you could use the FIND_IN_SET(str,strlist) function which returns a value 1
to N if the string str is in the list strlist consisting of N substrings.
Returns 0 if str is not in strlist or if strlist is the empty string.
Returns NULL if either argument is NULL.

If you want to find all the records that have 'North' you query will look
something like this

SELECT * FROM table_name WHERE FIND_IN_SET('North',regions_field)0

Dobromir Velev

-Original Message-
From: Joseph Koenig [EMAIL PROTECTED]
To: [EMAIL PROTECTED] [EMAIL PROTECTED]
Date: Thursday, June 28, 2001 4:50 AM
Subject: [PHP-DB] Modify Query, or sift through results?


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,

Joe

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DB] Modify Query, or sift through results?

2001-06-28 Thread Jason Stechschulte

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
[EMAIL PROTECTED]
--
If you're going to define a shortcut, then make it the base [sic] darn
shortcut you can.
 -- Larry Wall in [EMAIL PROTECTED]

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DB] Modify Query, or sift through results?

2001-06-28 Thread Joseph Koenig

Ah ha..now it looks like we're on to something. I had to modify it a
bit, but it worked...for the most part. I had to make it rlike
North[;|$]. But here's the next problem...I have a region 'Midwest'
and 'Upper Midwest'. When I do this search for Midwest, I get the 'Upper
Midwest' results also. So I tried rlike [^|;]Midwest[;|$] which
returned no results. If I'm thinking correctly, that should be saying:

Find the beginning of a string, or a semicolon, then Midwest, then a
semicolon, or the end of a string.

Is that correct? Thanks,

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
 [EMAIL PROTECTED]
 --
 If you're going to define a shortcut, then make it the base [sic] darn
 shortcut you can.
  -- Larry Wall in [EMAIL PROTECTED]

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]