@@ -656,6 +656,128 @@ public function testWhereLikePostgres()
656656 $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
657657 }
658658
659+ public function testWhereLikeClausePostgres ()
660+ {
661+ $ builder = $ this ->getPostgresBuilder ();
662+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' );
663+ $ this ->assertSame ('select * from "users" where "id"::text ilike ? ' , $ builder ->toSql ());
664+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
665+
666+ $ builder = $ this ->getPostgresBuilder ();
667+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' , false );
668+ $ this ->assertSame ('select * from "users" where "id"::text ilike ? ' , $ builder ->toSql ());
669+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
670+
671+ $ builder = $ this ->getPostgresBuilder ();
672+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' , true );
673+ $ this ->assertSame ('select * from "users" where "id"::text like ? ' , $ builder ->toSql ());
674+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
675+
676+ $ builder = $ this ->getPostgresBuilder ();
677+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' );
678+ $ this ->assertSame ('select * from "users" where "id"::text not ilike ? ' , $ builder ->toSql ());
679+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
680+
681+ $ builder = $ this ->getPostgresBuilder ();
682+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' , false );
683+ $ this ->assertSame ('select * from "users" where "id"::text not ilike ? ' , $ builder ->toSql ());
684+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
685+
686+ $ builder = $ this ->getPostgresBuilder ();
687+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' , true );
688+ $ this ->assertSame ('select * from "users" where "id"::text not like ? ' , $ builder ->toSql ());
689+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
690+ }
691+
692+ public function testWhereLikeClauseMysql ()
693+ {
694+ $ builder = $ this ->getMySqlBuilder ();
695+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' );
696+ $ this ->assertSame ('select * from `users` where `id` like ? ' , $ builder ->toSql ());
697+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
698+
699+ $ builder = $ this ->getMySqlBuilder ();
700+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' , false );
701+ $ this ->assertSame ('select * from `users` where `id` like ? ' , $ builder ->toSql ());
702+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
703+
704+ $ builder = $ this ->getMySqlBuilder ();
705+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' , true );
706+ $ this ->assertSame ('select * from `users` where `id` like binary ? ' , $ builder ->toSql ());
707+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
708+
709+ $ builder = $ this ->getMySqlBuilder ();
710+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' );
711+ $ this ->assertSame ('select * from `users` where `id` not like ? ' , $ builder ->toSql ());
712+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
713+
714+ $ builder = $ this ->getMySqlBuilder ();
715+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' , false );
716+ $ this ->assertSame ('select * from `users` where `id` not like ? ' , $ builder ->toSql ());
717+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
718+
719+ $ builder = $ this ->getMySqlBuilder ();
720+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' , true );
721+ $ this ->assertSame ('select * from `users` where `id` not like binary ? ' , $ builder ->toSql ());
722+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
723+ }
724+
725+ public function testWhereLikeClauseSqlite ()
726+ {
727+ $ builder = $ this ->getSQLiteBuilder ();
728+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' );
729+ $ this ->assertSame ('select * from "users" where "id" like ? ' , $ builder ->toSql ());
730+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
731+
732+ $ builder = $ this ->getSQLiteBuilder ();
733+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' , true );
734+ $ this ->assertSame ('select * from "users" where "id" glob ? ' , $ builder ->toSql ());
735+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
736+
737+ $ builder = $ this ->getSQLiteBuilder ();
738+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('description ' , 'Hell* _orld?% ' , true );
739+ $ this ->assertSame ('select * from "users" where "description" glob ? ' , $ builder ->toSql ());
740+ $ this ->assertEquals ([0 => 'Hell[*] ?orld[?]* ' ], $ builder ->getBindings ());
741+
742+ $ builder = $ this ->getSQLiteBuilder ();
743+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' );
744+ $ this ->assertSame ('select * from "users" where "id" not like ? ' , $ builder ->toSql ());
745+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
746+
747+ $ builder = $ this ->getSQLiteBuilder ();
748+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('description ' , 'Hell* _orld?% ' , true );
749+ $ this ->assertSame ('select * from "users" where "description" not glob ? ' , $ builder ->toSql ());
750+ $ this ->assertEquals ([0 => 'Hell[*] ?orld[?]* ' ], $ builder ->getBindings ());
751+
752+ $ builder = $ this ->getSQLiteBuilder ();
753+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('name ' , 'John% ' , true )->whereNotLike ('name ' , '%Doe% ' , true );
754+ $ this ->assertSame ('select * from "users" where "name" glob ? and "name" not glob ? ' , $ builder ->toSql ());
755+ $ this ->assertEquals ([0 => 'John* ' , 1 => '*Doe* ' ], $ builder ->getBindings ());
756+
757+ $ builder = $ this ->getSQLiteBuilder ();
758+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('name ' , 'John% ' )->orWhereLike ('name ' , 'Jane% ' , true );
759+ $ this ->assertSame ('select * from "users" where "name" like ? or "name" glob ? ' , $ builder ->toSql ());
760+ $ this ->assertEquals ([0 => 'John% ' , 1 => 'Jane* ' ], $ builder ->getBindings ());
761+ }
762+
763+ public function testWhereLikeClauseSqlServer ()
764+ {
765+ $ builder = $ this ->getSqlServerBuilder ();
766+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' );
767+ $ this ->assertSame ('select * from [users] where [id] like ? ' , $ builder ->toSql ());
768+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
769+
770+ $ builder = $ this ->getSqlServerBuilder ();
771+ $ builder ->select ('* ' )->from ('users ' )->whereLike ('id ' , '1 ' )->orWhereLike ('id ' , '2 ' );
772+ $ this ->assertSame ('select * from [users] where [id] like ? or [id] like ? ' , $ builder ->toSql ());
773+ $ this ->assertEquals ([0 => '1 ' , 1 => '2 ' ], $ builder ->getBindings ());
774+
775+ $ builder = $ this ->getSqlServerBuilder ();
776+ $ builder ->select ('* ' )->from ('users ' )->whereNotLike ('id ' , '1 ' );
777+ $ this ->assertSame ('select * from [users] where [id] not like ? ' , $ builder ->toSql ());
778+ $ this ->assertEquals ([0 => '1 ' ], $ builder ->getBindings ());
779+ }
780+
659781 public function testWhereDateSqlite ()
660782 {
661783 $ builder = $ this ->getSQLiteBuilder ();
0 commit comments