我正在尝试在PHP中创建一个布尔搜索字符串来创建MSSQL WHERE子句。
我在搜索框中输入了字符串: 管理和董事或“办公室管理员”不是全球或“IT临时管理”
然后我清理字符串并爆炸:
$searchText = preg_replace('/(&|\||-|!)(\S+)/imx', '$1 $2', $SampleSearch);
$keywords = explode(' ', $searchText);
我玩了很多例子来创建Where子句,但我真的很挣扎。到目前为止,我已经找到了以下但无法创建它。我尝试了很多改变,但仍然是一样的。
$newKeyWords = array();
$string = '';
$counter = 1;
foreach( $keywords as $keyName){
if( $keyName !== 'AND' && $keyName !== 'OR' && $keyName !== 'NOT'){
$string .= ' '.$keyName;
if( $counter == count($keywords) ){
$newKeyWords[] = trim($string);
}
}else{
$newKeyWords[] = trim($string);
$newKeyWords[] = $keyName;
$string = '';
}
$counter++;
}
我认为Where子句在完成后应该如下所示:
WHERE (((Position LIKE '%Managing%') AND (Position LIKE '%Director%')) OR ((Position LIKE '%Office Admin%'))) AND NOT ((Position LIKE '%Global%') OR (Position LIKE '%Interim Managing%'))