sql >> Databáze >  >> RDS >> Mysql

tvůrce dotazů:klauzule IN se složenými sloupci

AFAICT to (zatím) není možné pomocí syntaxe pole nebo regulárních porovnávacích výrazů, kód zodpovědný za transformaci zpracovává pouze jednotlivá pole a plochá pole, viz

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

To je však velmi dobře možné pomocí výrazu porovnání n-tic, který podporuje zpracování sad n-tic hned po vybalení. Interně jej používají asociace pro práci se složenými klíči.

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

Zdroj> \Cake\Database \Expression\TupleComparison




  1. Jak udělat RAND() deterministický v SQL Server

  2. Jak získat zbytek pomocí MOD() v PostgreSQL, MS SQL Server a MySQL

  3. Vrácení hodnoty, když v PDO nejsou žádné řádky

  4. vrátit mysql boolean jako „ano“ nebo „ne“