@@ -442,11 +442,11 @@ private function getFilterExpression(IQueryBuilder $qb, Column $column, string $
442442 switch ($ operator ) {
443443 case 'begins-with ' :
444444 $ includeDefault = str_starts_with ((string )($ defaultValue ?? '' ), $ value );
445- $ filterExpression = $ qb ->expr ()->like ('value ' , $ qb ->createNamedParameter ($ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
445+ $ filterExpression = $ qb ->expr ()->ilike ('value ' , $ qb ->createNamedParameter ($ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
446446 break ;
447447 case 'ends-with ' :
448448 $ includeDefault = str_ends_with ((string )($ defaultValue ?? '' ), $ value );
449- $ filterExpression = $ qb ->expr ()->like ('value ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ), $ paramType ));
449+ $ filterExpression = $ qb ->expr ()->ilike ('value ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ), $ paramType ));
450450 break ;
451451 case 'contains ' :
452452 $ filterExpressions = [];
@@ -477,14 +477,14 @@ private function getFilterExpression(IQueryBuilder $qb, Column $column, string $
477477 if ($ column ->getType () === 'selection ' && $ column ->getSubtype () === 'multi ' ) {
478478 $ value = str_replace (['" ' , '\'' ], '' , $ value );
479479 $ filterExpression = $ qb2 ->expr ()->orX (
480- $ qb ->expr ()->like ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . '] ' )),
481- $ qb ->expr ()->like ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' )),
482- $ qb ->expr ()->like ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ']% ' )),
483- $ qb ->expr ()->like ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' ))
480+ $ qb ->expr ()->ilike ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . '] ' )),
481+ $ qb ->expr ()->ilike ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' )),
482+ $ qb ->expr ()->ilike ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ']% ' )),
483+ $ qb ->expr ()->ilike ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' ))
484484 );
485485 break ;
486486 }
487- $ filterExpression = $ qb ->expr ()->like ('value ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
487+ $ filterExpression = $ qb ->expr ()->ilike ('value ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
488488 break ;
489489 case 'does-not-contain ' :
490490 if (is_array ($ value ) && $ column ->getType () === Column::TYPE_USERGROUP ) {
@@ -522,14 +522,15 @@ private function getFilterExpression(IQueryBuilder $qb, Column $column, string $
522522 if ($ column ->getType () === 'selection ' && $ column ->getSubtype () === 'multi ' ) {
523523 $ value = str_replace (['" ' , '\'' ], '' , $ value );
524524 $ filterExpression = $ qb2 ->expr ()->andX (
525- $ qb ->expr ()->notLike ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . '] ' )),
526- $ qb ->expr ()->notLike ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' )),
527- $ qb ->expr ()->notLike ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ']% ' )),
528- $ qb ->expr ()->notLike ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' ))
529- );
525+ $ qb ->expr ()->andX (
526+ 'NOT ( ' . $ qb ->expr ()->iLike ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . '] ' )) . ') ' ,
527+ 'NOT ( ' . $ qb ->expr ()->iLike ('value ' , $ qb ->createNamedParameter ('[ ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' )) . ') ' ,
528+ 'NOT ( ' . $ qb ->expr ()->iLike ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ']% ' )) . ') ' ,
529+ 'NOT ( ' . $ qb ->expr ()->iLike ('value ' , $ qb ->createNamedParameter ('%, ' . $ this ->db ->escapeLikeParameter ($ value ) . ',% ' )) . ') '
530+ ));
530531 break ;
531532 }
532- $ filterExpression = $ qb ->expr ()->notLike ('value ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
533+ $ filterExpression = ' NOT ( ' . $ qb ->expr ()->iLike ('value ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType )) . ' ) ' ;
533534 break ;
534535 case 'is-equal ' :
535536 $ includeDefault = $ defaultValue === $ value ;
@@ -630,13 +631,13 @@ private function getMetaFilterExpression(IQueryBuilder $qb, int $columnId, strin
630631 private function getSqlOperator (string $ operator , IQueryBuilder $ qb , string $ columnName , $ value , $ paramType ): string {
631632 switch ($ operator ) {
632633 case 'begins-with ' :
633- return $ qb ->expr ()->like ($ columnName , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ), $ paramType ));
634+ return $ qb ->expr ()->ilike ($ columnName , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ), $ paramType ));
634635 case 'ends-with ' :
635- return $ qb ->expr ()->like ($ columnName , $ qb ->createNamedParameter ($ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
636+ return $ qb ->expr ()->ilike ($ columnName , $ qb ->createNamedParameter ($ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
636637 case 'contains ' :
637- return $ qb ->expr ()->like ($ columnName , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
638+ return $ qb ->expr ()->ilike ($ columnName , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
638639 case 'does-not-contain ' :
639- return $ qb ->expr ()->notLike ($ columnName , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType ));
640+ return ' NOT ( ' . $ qb ->expr ()->ilike ($ columnName , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ value ) . '% ' , $ paramType )) . ' ) ' ;
640641 case 'is-equal ' :
641642 return $ qb ->expr ()->eq ($ columnName , $ qb ->createNamedParameter ($ value , $ paramType ));
642643 case 'is-not-equal ' :
0 commit comments