如何为所有列设置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