Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

construtor de consultas:cláusula IN com colunas compostas


AFAICT isso não é possível (ainda) usando a sintaxe de array ou expressões de comparação regulares, o código responsável pela transformação lida apenas com campos únicos e matrizes planas, consulte

Fonte> \Cake \Database\Expression\Comparison::_stringExpression()

No entanto, isso é muito bem possível usando uma expressão de comparação de tuplas, que suporta o manuseio de conjuntos de tuplas prontos para uso. Internamente, é usado por associações para manipular chaves compostas.
$fields = ['order_date', 'order_number'];
$types = ['date', 'integer'];
$values = [
    ['2016-03-11', 3455453], 
    ['2016-03-18', 83545454], 
    ['2016-06-17', 5354544]
];

$query->where(
    new \Cake\Database\Expression\TupleComparison($fields, $values, $types, 'IN')
);

Fonte> \Cake\Database \Expression\TupleComparison