sql >> Database >  >> RDS >> Mysql

querybuilder:IN-component met samengestelde kolommen

AFAICT dit is (nog) niet mogelijk met behulp van de array-syntaxis of reguliere vergelijkingsexpressies, de code die verantwoordelijk is voor het transformeren verwerkt alleen enkele velden en platte arrays, zie

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

Dit is echter heel goed mogelijk met behulp van een tuple-vergelijkingsuitdrukking, die het gebruik van sets van tuples uit de doos ondersteunt. Intern wordt het gebruikt door verenigingen voor het verwerken van samengestelde sleutels.

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

Bron> \Cake\Database \Expression\TupleComparison




  1. Hoe de Power()-functie werkt in PostgreSQL

  2. Hoe koppel ik een native query aan een POJO als ik geen entiteit in mijn project heb?

  3. Selecteer alle georuimtelijke punten in een selectiekader

  4. CodeIgniter:hoe de WHERE-clausule en OR-clausule te gebruiken?