In MY TABLE如果我输入
floor fly
表返回No matching records
因为全球搜索php 函数搜索单个列内的记录。
但我希望 AND 条件适用于所有列。
如果我输入floor fly
表应该显示如下内容:
|__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 . . . AGAINST
功能。
通过此类功能,您可以按相关性对结果进行排序。这意味着您不必提前决定多个单词之间的连接符是“与”还是“或”。如果您愿意,您还可以实现布尔搜索,这将允许更复杂的逻辑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)