Trait TupleComparisonTranslatorTrait

Provides a translator method for tuple comparisons

Method Summary

Method Detail

_transformTupleComparison() protected

_transformTupleComparison(\Cake\Database\Expression\TupleComparison $expression, \Cake\Database\Query $query)

Receives a TupleExpression and changes it so that it conforms to this SQL dialect.

It transforms expressions looking like '(a, b) IN ((c, d), (e, f))' into an equivalent expression of the form '((a = c) AND (b = d)) OR ((a = e) AND (b = f))'.

It can also transform transform expressions where the right hand side is a query selecting the same amount of columns as the elements in the left hand side of the expression:

(a, b) IN (SELECT c, d FROM a_table) is transformed into

1 = (SELECT 1 FROM a_table WHERE (a = c) AND (b = d))

Parameters

\Cake\Database\Expression\TupleComparison $expression

The expression to transform

\Cake\Database\Query $query

The query to update.

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.0/trait-Cake.Database.Dialect.TupleComparisonTranslatorTrait.html