diff --git a/py_dbcn/connectors/core/records.py b/py_dbcn/connectors/core/records.py
index 1566d5b56172d7032bb98b215ac6c9275cd9c4d3..38f75ad24310d5097410a11227950b78bf611ab0 100644
--- a/py_dbcn/connectors/core/records.py
+++ b/py_dbcn/connectors/core/records.py
@@ -337,7 +337,7 @@ class BaseRecords:
             x.strip(self._base.validate._quote_column_format)
             for x in columns_clause
         ])
-        where_columns_clause = ',\n'.join([
+        where_columns_clause = ' AND\n'.join([
             '    pydbcn_update_table.{0} = pydbcn_temp.{0}'.format(x.strip(self._base.validate._quote_column_format))
             for x in where_columns_clause
         ])
diff --git a/tests/connectors/core/test_records.py b/tests/connectors/core/test_records.py
index 3adbe0aa8fb43a4fdd8cd094bc3b92dc7cf478af..874a61cf988fce9cdaa926d9384c836b62774f0b 100644
--- a/tests/connectors/core/test_records.py
+++ b/tests/connectors/core/test_records.py
@@ -1502,14 +1502,14 @@ class CoreRecordsTestMixin:
 
         with self.subTest('With skipping unused columns'):
             # Run test query.
-            updated_row_5 = (5, 'this is')
-            updated_row_6 = (6, 'a')
-            updated_row_7 = (7, 'test')
+            updated_row_5 = (5, row_5[1], 'this is')
+            updated_row_6 = (6, row_6[1], 'a')
+            updated_row_7 = (7, row_7[1], 'test')
             columns_clause = ['id', 'description']
             values_clause = [
-                updated_row_5,
-                updated_row_6,
-                updated_row_7,
+                (updated_row_5[0], updated_row_5[2]),
+                (updated_row_6[0], updated_row_6[2]),
+                (updated_row_7[0], updated_row_7[2]),
             ]
             where_columns_clause = ['id']
             self.connector.records.update_many(table_name, columns_clause, values_clause, where_columns_clause)
@@ -1521,9 +1521,9 @@ class CoreRecordsTestMixin:
             self.assertIn(row_2, results)
             self.assertIn(row_3, results)
             self.assertIn(row_4, results)
-            self.assertIn((updated_row_5[0], row_5[1], updated_row_5[1]), results)
-            self.assertIn((updated_row_6[0], row_6[1], updated_row_6[1]), results)
-            self.assertIn((updated_row_7[0], row_7[1], updated_row_7[1]), results)
+            self.assertIn(updated_row_5, results)
+            self.assertIn(updated_row_6, results)
+            self.assertIn(updated_row_7, results)
             self.assertIn(row_8, results)
             self.assertIn(row_9, results)
             self.assertIn(row_10, results)
@@ -1536,6 +1536,34 @@ class CoreRecordsTestMixin:
             row_6 = updated_row_6
             row_7 = updated_row_7
 
+        with self.subTest('With multiple values in WHERE clause'):
+            # Run test query.
+            updated_row_8 = (row_8[0], row_8[1], 'Some Descriptor Here for 8')
+            columns_clause = ['id', 'name', 'description']
+            values_clause = [
+                updated_row_8,
+            ]
+            where_columns_clause = ['id', 'name']
+            self.connector.records.update_many(table_name, columns_clause, values_clause, where_columns_clause)
+
+            # Verify one record returned.
+            results = self.connector.query.execute('SELECT * FROM {0};'.format(table_name))
+            self.assertEqual(len(results), 10)
+            self.assertIn(row_1, results)
+            self.assertIn(row_2, results)
+            self.assertIn(row_3, results)
+            self.assertIn(row_4, results)
+            self.assertIn(row_5, results)
+            self.assertIn(row_6, results)
+            self.assertIn(row_7, results)
+            self.assertIn(updated_row_8, results)
+            self.assertIn(row_9, results)
+            self.assertIn(row_10, results)
+            self.assertNotIn(row_8, results)
+
+            # Update row variables.
+            row_8 = updated_row_8
+
     def test__update_many__datetime__success(self):
         """
         Test execute_many `UPDATE` query with datetime values.