我有一个正在构建的查询字符串,当我使用LIKE时它工作正常,但它不适用于NOT LIKE
$sWhere = "";
if ( $_GET['sSearch'] != "" )
{
$aWords = preg_split('/\s+/', $_GET['sSearch']);
$sWhere = "WHERE (";
for ( $j=0 ; $j
{
if ( $aWords[$j] != "" )
{
if(substr($aWords[$j], 0, 1) == "!"){
$notString = substr($aWords[$j], 1);
$sWhere .= "(";
for ( $i=0 ; $i
{
$sWhere .= $aColumns[$i]." NOT LIKE '%".mysql_real_escape_string( $notString )."%' OR ";
}
}
else{
$sWhere .= "(";
for ( $i=0 ; $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
{
$sWhere .= $aColumns[$i]." NOT LIKE '%".mysql_real_escape_string( $notString )."%' OR ";
}
}如果我删除了“NOT”,查询就可以正常工作,但是当我添加NOT时它什么也不做。
谢谢