@@ -497,7 +497,7 @@ public static function mapArrayToNodeObjectList(array $items)
497
497
array ('<< ' , '>> ' ),
498
498
array ('& ' ),
499
499
array ('| ' ),
500
- array ('= ' /*(comparison)*/ , '<=> ' , '>= ' , '> ' , '<= ' , '< ' , '<> ' , '!= ' , 'IS ' , 'LIKE ' , 'REGEXP ' , 'IN ' , 'IS NOT ' , 'NOT IN ' ),
500
+ array ('= ' /*(comparison)*/ , '<=> ' , '>= ' , '> ' , '<= ' , '< ' , '<> ' , '!= ' , 'IS ' , 'LIKE ' , 'REGEXP ' , 'IN ' , 'IS NOT ' , 'NOT IN ' , ' NOT LIKE ' ),
501
501
array ('AND_FROM_BETWEEN ' ),
502
502
array ('THEN ' ),
503
503
array ('WHEN ' ),
@@ -520,6 +520,7 @@ public static function mapArrayToNodeObjectList(array $items)
520
520
'IS ' => 'SQLParser\Node\Is ' ,
521
521
'IS NOT ' => 'SQLParser\Node\IsNot ' ,
522
522
'LIKE ' => 'SQLParser\Node\Like ' ,
523
+ 'NOT LIKE ' => 'SQLParser\Node\NotLike ' ,
523
524
'REGEXP ' => 'SQLParser\Node\Regexp ' ,
524
525
'IN ' => 'SQLParser\Node\In ' ,
525
526
'NOT IN ' => 'SQLParser\Node\NotIn ' ,
@@ -578,6 +579,12 @@ public static function simplify($nodes)
578
579
$ notIn ->setValue ('NOT IN ' );
579
580
$ newNodes [] = $ notIn ;
580
581
++$ i ;
582
+ } elseif ($ node instanceof Operator && isset ($ nodes [$ i + 1 ]) && $ nodes [$ i + 1 ] instanceof Operator
583
+ && strtoupper ($ node ->getValue ()) == 'NOT ' && strtoupper ($ nodes [$ i + 1 ]->getValue ()) == 'LIKE ' ) {
584
+ $ notLike = new Operator ();
585
+ $ notLike ->setValue ('NOT LIKE ' );
586
+ $ newNodes [] = $ notLike ;
587
+ ++$ i ;
581
588
} else {
582
589
$ newNodes [] = $ node ;
583
590
}
0 commit comments