Re: Regexp matching in SQL

From: 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.


« previous php.general (#231559) next »