@@ -497,7 +497,7 @@ public static function mapArrayToNodeObjectList(array $items)
497497 array ('<< ' , '>> ' ),
498498 array ('& ' ),
499499 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 ' ),
501501 array ('AND_FROM_BETWEEN ' ),
502502 array ('THEN ' ),
503503 array ('WHEN ' ),
@@ -520,6 +520,7 @@ public static function mapArrayToNodeObjectList(array $items)
520520 'IS ' => 'SQLParser\Node\Is ' ,
521521 'IS NOT ' => 'SQLParser\Node\IsNot ' ,
522522 'LIKE ' => 'SQLParser\Node\Like ' ,
523+ 'NOT LIKE ' => 'SQLParser\Node\NotLike ' ,
523524 'REGEXP ' => 'SQLParser\Node\Regexp ' ,
524525 'IN ' => 'SQLParser\Node\In ' ,
525526 'NOT IN ' => 'SQLParser\Node\NotIn ' ,
@@ -578,6 +579,12 @@ public static function simplify($nodes)
578579 $ notIn ->setValue ('NOT IN ' );
579580 $ newNodes [] = $ notIn ;
580581 ++$ 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 ;
581588 } else {
582589 $ newNodes [] = $ node ;
583590 }
0 commit comments