Mysql
 sql >> Database >  >> RDS >> Mysql

generatore di query:clausola IN con colonne composte

AFAICT questo non è possibile (ancora) utilizzando la sintassi dell'array o le espressioni di confronto regolare, il codice responsabile della trasformazione gestisce solo campi singoli e array piatti, vedi

Fonte> \Cake \Database\Espressione\Confronto::_stringExpression()

Tuttavia, questo è molto bene possibile usando un'espressione di confronto di tuple, che supporta la gestione di insiemi di tuple fuori dagli schemi. Internamente viene utilizzato dalle associazioni per la gestione delle chiavi composte.

$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 \Espressione\Confronto tuple