Hi,

unfortunately i can't help you much, but listen
you can make your pattern more readable if you
delete "[]" there's no need for classes in your pattern

SELECT * FROM ospd WHERE word REGEXP
'^a?p?e?$|^a?e?p?$|^p?e?a?$|^p?a?e?$|^e?a?p?$|^e?p?a?$';

? = one or none but if you need each letter then omit "?"

SELECT * FROM ospd WHERE word REGEXP '^ape$|^aep$|^pea$|^pae$|^eap$|^epa$';

this is the simplest way but it also matches aae, aaa, ppe, ppp ... and
probably not what you need

SELECT * FROM ospd WHERE word REGEXP '^[aep]{3}$';

I thnk you don't have another choice then to write each combination by
yourself

greet
martin

----- Original Message -----
From: "Xepherys" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 10, 2002 8:26 AM
Subject: [PHP-DB] MySQL REGEXP functionality... any way to make this easier?


> Right now, a sample query I might have would be...
>
> SELECT * FROM ospd WHERE word REGEXP '^([a]?[p]?[e]?)$|^[p]?[a]?[e]?$|^[a
> ]?[e]?[p]?$|^[p]?[e]?[a]?$|^[e]?[p]?[a]?$|^[e]?[a]?[p]?$';
>
>
> where basically I need to query every combination of a, p and e.  This is
a
> pain, but for only three letter is not so bad.  As you can see, this could
> become unruly with larger numbers of letters.  Each instance of a letter
can
> only occur once.  However, a letter may be duplicated and used once for
each
> instance.  Hence the statement steps through... it could also be something
> like...
>
> SELECT * FROM ospd WHERE word REGEXP
> '^[a]?[a]?[e]?$|^[a]?[e]?[a]?$||^[e]?[a]?[a]?$';
>
> more easily written because one letter is used twice and can occure once
for
> each instance.  Please let me know if you have any ideas.
>
>
> Jesse
> [EMAIL PROTECTED]
>
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to