У меня есть строка запроса строится и она отлично работает, когда я использую LIKE, но он не будет работать с NOT LIKEPHP - MySQL запрос не работает при использовании НЕ НРАВИТСЯ
$sWhere = "";
if ($_GET['sSearch'] != "")
{
$aWords = preg_split('/\s+/', $_GET['sSearch']);
$sWhere = "WHERE (";
for ($j=0 ; $j<count($aWords) ; $j++)
{
if ($aWords[$j] != "")
{
if(substr($aWords[$j], 0, 1) == "!"){
$notString = substr($aWords[$j], 1);
$sWhere .= "(";
for ($i=0 ; $i<count($aColumns) ; $i++)
{
$sWhere .= $aColumns[$i]." NOT LIKE '%".mysql_real_escape_string($notString)."%' OR ";
}
}
else{
$sWhere .= "(";
for ($i=0 ; $i<count($aColumns) ; $i++)
{
$sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string($aWords[$j])."%' OR ";
}
}
$sWhere = substr_replace($sWhere, "", -3);
$sWhere .= ") AND ";
}
}
$sWhere = substr_replace($sWhere, "", -4);
часть кода, который делает работа:
if(substr($aWords[$j], 0, 1) == "!"){
$notString = substr($aWords[$j], 1);
$sWhere .= "(";
for ($i=0 ; $i<count($aColumns) ; $i++)
{
$sWhere .= $aColumns[$i]." NOT LIKE '%".mysql_real_escape_string($notString)."%' OR ";
}
}
Если я удалю «NOT», запрос работает нормально, но он ничего не делает, когда я добавляю NOT.
благодаря
Объяснение 'ничего не делает'. Очевидно, когда вы используете 'NOT LIKE' вместо' LIKE', вы получаете только противоположный результат – zerkms
Помогает ли это сообщение? http://stackoverflow.com/questions/1638566/sql-not-like-statement-not-working – Donovan
Я вижу много кода, но не одного запроса. Довольно странно для вопроса MySQL ... –