$not = strpos($v,'!')===0 ? 1 : 0;
if ($not) $v = substr($v,1);
+ // Superior / Inferior
+ if (preg_match('/^(<|>|<=|>=)/',$v,$m)) {
+ $v = substr($v,strlen($m[1]));
+ $equal = $m[1];
+ }
+
// Regex
if (strpos($v,'~')===0) {
$v = substr($v,1);
if (preg_match('/[_%]/',$v)) {
$equal = ' '.($not ? 'NOT ' : '').'LIKE ';
} else {
- $equal = ($not ? '<> ' : '=');
+ $equal = ($not ? '<> ' : $equal);
}
// Others
$v = $this->db()->quote($v);
}
- $equal = $not ? '<>' : '=';
+ $equal = $not ? '<>' : $equal;
}
$pattern = substr($pattern,1);
$match = preg_match('@'.str_replace('@','\@',$pattern).'@i',$string);
+ // Superior
+ } elseif (strpos($pattern,'>')===0) {
+ $pattern = substr($pattern,1);
+ $match = ($string > $pattern);
+ } elseif (strpos($pattern,'>=')===0) {
+ $pattern = substr($pattern,2);
+ $match = ($string >= $pattern);
+
+ // Inferior
+ } elseif (strpos($pattern,'<')===0) {
+ $pattern = substr($pattern,1);
+ $match = ($string < $pattern);
+ } elseif (strpos($pattern,'<=')===0) {
+ $pattern = substr($pattern,2);
+ $match = ($string <= $pattern);
+
// Match
} elseif(preg_match('/['.preg_quote('*?[]!').']/',$pattern)) {