Re: Distinct Partial Matches: RegExp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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@xxxxxxxxxxxxxxxxxx> 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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux