sql >> Base de Datos >  >> RDS >> Mysql

generador de consultas:cláusula IN con columnas compuestas

AFAICT esto no es posible (todavía) usando la sintaxis de matriz o las expresiones regulares de comparación, el código responsable de la transformación solo maneja campos únicos y matrices planas, consulte

Fuente> \Cake \Base de datos\Expresión\Comparación::_stringExpression()

Sin embargo, esto es muy posible utilizando una expresión de comparación de tuplas, que admite el manejo de conjuntos de tuplas listos para usar. Internamente, las asociaciones lo utilizan para manejar claves compuestas.

$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')
);

Fuente> \Cake\Database \Expresión\TupleComparison