@@ -38,7 +38,10 @@ test('?name', function () use ($explorer) {
3838test ('test Selection as a parameter ' , function () use ($ explorer ) {
3939 $ sqlBuilder = new SqlBuilder ('book ' , $ explorer );
4040 $ sqlBuilder ->addWhere ('id ' , $ explorer ->table ('book ' ));
41- Assert::equal (reformat (['SELECT * FROM [book] WHERE ([id] IN (SELECT [id] FROM [book])) ' ]), $ sqlBuilder ->buildSelectQuery ());
41+ Assert::equal (reformat ([
42+ 'mysql ' => 'SELECT * FROM `book` WHERE (`id` IN (?)) ' ,
43+ 'SELECT * FROM [book] WHERE ([id] IN (SELECT [id] FROM [book])) ' ,
44+ ]), $ sqlBuilder ->buildSelectQuery ());
4245});
4346
4447
@@ -47,6 +50,7 @@ test('test more Selection as a parameter', function () use ($explorer) {
4750 $ sqlBuilder ->addWhere ('id ' , $ explorer ->table ('book ' ));
4851 $ sqlBuilder ->addWhere ('id ' , $ explorer ->table ('book_tag ' )->select ('book_id ' ));
4952 Assert::equal (reformat ([
53+ 'mysql ' => 'SELECT * FROM `book` WHERE (`id` IN (?)) AND (`id` IN (?)) ' ,
5054 'SELECT * FROM [book] WHERE ([id] IN (SELECT [id] FROM [book])) AND ([id] IN (SELECT [book_id] FROM [book_tag])) ' ,
5155 ]), $ sqlBuilder ->buildSelectQuery ());
5256});
@@ -56,6 +60,7 @@ test('test more Selection as one of more argument', function () use ($explorer)
5660 $ sqlBuilder = new SqlBuilder ('book ' , $ explorer );
5761 $ sqlBuilder ->addWhere ('id ? AND id ? ' , $ explorer ->table ('book ' )->where ('id ' , 2 ), $ explorer ->table ('book_tag ' )->select ('book_id ' ));
5862 Assert::equal (reformat ([
63+ 'mysql ' => 'SELECT * FROM `book` WHERE (`id` IN (?) AND `id` IN (?)) ' ,
5964 'SELECT * FROM [book] WHERE ([id] IN (SELECT [id] FROM [book] WHERE ([id] = ?)) AND [id] IN (SELECT [book_id] FROM [book_tag])) ' ,
6065 ]), $ sqlBuilder ->buildSelectQuery ());
6166});
@@ -77,6 +82,7 @@ test('test Selection with parameters as a parameter', function () use ($explorer
7782 $ sqlBuilder ->addWhere ('id ' , $ explorer ->table ('book ' )->having ('COUNT(:book_tag.tag_id) > ' , 1 ));
7883 $ schemaSupported = $ explorer ->getConnection ()->getDriver ()->isSupported (Driver::SUPPORT_SCHEMA );
7984 Assert::equal (reformat ([
85+ 'mysql ' => 'SELECT * FROM `book` WHERE (`id` IN (?)) ' ,
8086 'SELECT * FROM [book] WHERE ([id] IN (SELECT [id] FROM [book] LEFT JOIN ' . ($ schemaSupported ? '[public].[book_tag] ' : '' ) . '[book_tag] ON [book].[id] = [book_tag].[book_id] HAVING COUNT([book_tag].[tag_id]) > ?)) ' ,
8187 ]), $ sqlBuilder ->buildSelectQuery ());
8288 Assert::count (1 , $ sqlBuilder ->getParameters ());
@@ -87,6 +93,7 @@ test('test Selection with column as a parameter', function () use ($explorer) {
8793 $ sqlBuilder = new SqlBuilder ('book ' , $ explorer );
8894 $ sqlBuilder ->addWhere ('id ' , $ explorer ->table ('book ' )->select ('id ' ));
8995 Assert::equal (reformat ([
96+ 'mysql ' => 'SELECT * FROM `book` WHERE (`id` IN (?)) ' ,
9097 'SELECT * FROM [book] WHERE ([id] IN (SELECT [id] FROM [book])) ' ,
9198 ]), $ sqlBuilder ->buildSelectQuery ());
9299});
@@ -96,6 +103,7 @@ test('test multiple placeholder parameter', function () use ($explorer) {
96103 $ sqlBuilder = new SqlBuilder ('book ' , $ explorer );
97104 $ sqlBuilder ->addWhere ('id ? OR id ? ' , null , $ explorer ->table ('book ' ));
98105 Assert::equal (reformat ([
106+ 'mysql ' => 'SELECT * FROM `book` WHERE (`id` IS NULL OR `id` IN (?)) ' ,
99107 'SELECT * FROM [book] WHERE ([id] IS NULL OR [id] IN (SELECT [id] FROM [book])) ' ,
100108 ]), $ sqlBuilder ->buildSelectQuery ());
101109});
@@ -168,6 +176,7 @@ test('tests NOT', function () use ($explorer) {
168176 $ sqlBuilder ->addWhere ('id NOT ' , null );
169177 $ sqlBuilder ->addWhere ('id NOT ' , $ explorer ->table ('book ' )->select ('id ' ));
170178 Assert::equal (reformat ([
179+ 'mysql ' => 'SELECT * FROM `book` WHERE (`id` NOT IN (?)) AND (`id` IS NOT NULL) AND (`id` NOT IN (?)) ' ,
171180 'SELECT * FROM [book] WHERE ([id] NOT IN (?)) AND ([id] IS NOT NULL) AND ([id] NOT IN (SELECT [id] FROM [book])) ' ,
172181 ]), $ sqlBuilder ->buildSelectQuery ());
173182});
0 commit comments