PHP拆分字符串以进行布尔搜索并创建mssql查询

时间:2017-05-10 09:23:11

标签: php sql-server boolean

我正在尝试在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%'))

0 个答案:

没有答案