diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 54320ddf928..5b05a9a2071 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9148,7 +9148,15 @@ function natural_search($fields, $value, $mode = 0, $nofirstand = 0) if (preg_match('/\.(id|rowid)$/', $field)) { // Special case for rowid that is sometimes a ref so used as a search field $newres .= $field." = ".(is_numeric(trim($tmpcrit)) ? ((float) trim($tmpcrit)) : '0'); } else { - $newres .= $field." LIKE '"; + $tmpcrit = trim($tmpcrit); + $tmpcrit2 = $tmpcrit; + $tmpbefore = '%'; + $tmpafter = '%'; + if(preg_match('/^!/', $tmpcrit)) { + $newres .= $field." NOT LIKE '"; // ! as exclude character + $tmpcrit2 = preg_replace('/^!/', '', $tmpcrit2); + } + else $newres .= $field." LIKE '"; $tmpcrit = trim($tmpcrit); $tmpcrit2 = $tmpcrit;