Re: Regexp matching in SQL
| From: | Brian Anderson | Date: | Mon, 06 Mar 2006 22:52:55 +0000 |
| Subject: | Re: Regexp matching in SQL | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-231559@lists.php.net to get a copy of this message | ||
"IN ( exp1, exp2)" didn't seem to work for me. I've seen that used before for including a subquery, but somehow it didn't like the comma separated list.
I think this below is doing it for me.
$separated = implode("|", (explode(" ", (AddSlashes($_REQUEST['terms'])))));
if($_REQUEST['c'] == "and"){
$conditional = 'AND';
}else{
$conditional = 'OR';
}
$delim = " WHERE Keyword REGEXP '$separated' $conditional ItemDescription REGEXP '$separated'";
I'm still curious about the IN() keyword and how it works.
-Brian
jblanchard@pocket.com wrote:
[snip] I am trying to simplify an SQL query that is pretty much like below: $sql = "SELECT * FROM table WHERE keyword RLIKE '$expression1' OR keyword RLIKE '$expression2' "; The different terms '$expression1' and '$expression1' come from an array. Is there any way to within one regular expression to say either term1 or term 2? Something like this where the OR condition would be basically built into the regular expression: $sql = "SELECT * FROM table WHERE keyword RLIKE '$expression'"; // the $expression would have to signify either a or b. Does that make sense? [/snip] Kinda'. If you asked on a SQL board they would say do this; SELECT * FROM table WHERE keyword IN ($expression1, $expression2) IN is the shorthand for multiple OR conditions.