Re: Distinct Partial Matches: RegExp

From: Date: Sun, 03 Sep 2006 17:14:43 +0000
Subject: Re: Distinct Partial Matches: RegExp
References: 1  Groups: php.db 
Request: Send a blank email to php-db+get-42314@lists.php.net to get a copy of this message
SQL Server and DB2 (version dependant) don't support regexp in sql Bastien
From: Micah Stevens <micah@raincross-tech.com> To: J R <blue.jr@gmail.com> CC: php-db@lists.php.net Subject: Re: [PHP-DB] Distinct Partial Matches: RegExp Date: Wed, 30 Aug 2006 18:29:19 -0700 You can do regular expression matching in MySQL and I think a few other servers too, but that's not the same as regular expression replacement like you can do with PHP.. It just returns a boolean true/false depending on whether or not the match works. -Micah J R wrote:
i'm a bit confused. if i'm getting you right heres my 2 cents: first you do sql query using DISTINCT when the result are returned to you, you can then run thru the result array using preg_replace. heres an example:
$aVar    = array(
       'animal-dog-5',
       'animal-dog-3',
       'animal-cat-1',
       'animal-cat-22',
       'animal-bird-5',
       );
$aResult    = array();
foreach ($aVar as $value) {
   $tmp    = preg_replace('/-\d*$/', '', $value);
   $aResult[$tmp]    = $tmp;
// if you want to conserve a bit of resources asign NULL;
   // $aResult[$tmp]    = NULL;
} var_dump($aResult); hth, john p.s. i'm not sure if it is possible to use regular expression in a sql query. can anyone comment on this? thanks. On 8/31/06, Kevin Murphy <php@stubborndonkey.com> wrote:
Well, its not really a search.... that would be way easier. :-) What I'm looking for is a query that will give me the complete list of items that are distinct, minus the last number after the last hyphen. animal-dog animal-cat animal-bird -- Kevin Murphy Webmaster: Information and Marketing Services Western Nevada Community College www.wncc.edu 775-445-3326 On Aug 30, 2006, at 4:34 PM, Micah Stevens wrote:
Select DISTINCT area from table like '$searchterms%'; In SQL, you can use the 'LIKE' keyword along with the '%' and '_' wildcards.. '_' is one character, '%' is any number of chars. -Micah Kevin Murphy wrote:
This might be really easy, but I'm just not sure how to write this query and my searching on google isn't finding me things, probably because I am searching for the wrong terms. I have a bunch of records where the "area" column is like: animal-dog-5 animal-dog-3 animal-cat-1 animal-cat-22 animal-bird-5 What I want to do is run a distinct query on just the part previous to the number. animal-dog animal-cat animal-bird So in other words, something like this, but I am not sure if this is the right way to go: $query = "SELECT DISTINCT area FROM table WHERE REGEXP 'anynumberofletters dash anynumberofletters dash '" Of course, I could be barking up the wrong tree with the REGEXP thing. Anyone care to point me in the right direction? --Kevin Murphy Webmaster: Information and Marketing Services Western Nevada Community College www.wncc.edu 775-445-3326 --Kevin Murphy Webmaster: Information and Marketing Services Western Nevada Community College www.wncc.edu 775-445-3326
-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php


« previous php.db (#42314) next »