编程语言
首页 > 编程语言> > 如何为所有列设置AND条件-PHP

如何为所有列设置AND条件-PHP

作者:互联网

如果我输入MY TABLE

floor fly

该表返回没有匹配的记录,因为Global Search php函数在单个列内搜索记录.
但我希望AND条件适用于所有列.

如果输入落地飞行桌,我应该显示以下内容:

|__Column1___|___Column2____|__Column4_|
|            |              |          |
|..FLOOR...  |DREAMS - FLY  |  1994    |
| ..dreams   |    xyz       | floor    |

注意:这不是OR函数abc OR cde
这是我的php代码,但并不能像我期望的那样工作:

static function filter ( $request, $columns, &$bindings )
    {
        $globalSearch = array();
        $columnSearch = array();
        $dtColumns = self::pluck( $columns, 'dt' );

        if ( isset($request['search']) && $request['search']['value'] != '' ) {
            $str = $request['search']['value'];

            for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
                $requestColumn = $request['columns'][$i];
                $columnIdx = array_search( $requestColumn['data'], $dtColumns );
                $column = $columns[ $columnIdx ];

                if ( $requestColumn['searchable'] == 'true' ) {
                    $binding = self::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR );
                    $globalSearch[] = "".$column['db']." LIKE ".$binding;
                }
            }
        }

消除对我想要的任何疑问:LOOK

这是我想要的示例图片

解决方法:

这有一段评论的时间.

对于这种类型的搜索,您可以考虑全文索引.文档是here.这些实现MATCH. . .反对功能.

使用这种功能,您可以按相关性对结果进行排序.这意味着您不必预先确定连接器是多个单词之间的“和”还是“或”.如果需要,您还可以实现布尔搜索,这将允许更复杂的复杂逻辑.

标签:php,mysql,jquery-datatables
来源: https://codeday.me/bug/20191011/1891989.html