との句では、私は、このような配列から始まるこのクエリビルダは:複合列
...
WHERE
(order_date, order_number) IN (
('2016-03-11', 3455453),
('2016-03-18', 83545454),
('2016-06-17', 5354544)
)
のように、複数のカラム上の条件で作成する必要があります。
$orders = [
['2016-03-11', 3455453],
['2016-03-18', 83545454],
['2016-06-17', 5354544]
];
cake3クエリビルダを使用しました。私は
->where(['(order_date, order_number) IN' => $orders]);
てみましたが、私はエラーを取得:
Cannot convert value to string
私はそれが手動で配列を操作するクエリを作成することは難しいことではありません知っているが、ケーキの方法がある場合、私は知りたいのですがそれをするために。このAFAICT
[構文で有効な]あなたが何をしようとしてです(http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html #function_in)?私はあなたが 'OR'を探していると思う。 – AD7six
ああ、 'INは行のコンストラクタを比較するのに使うことができます:' hehは決してそれを知り/読んでいません。私はそれを行う方法で構築されることを期待していない、それは一般的な使用法ではない(少なくともIME)。 – AD7six
私はそれが有効なIN構文だと思います。実際、このマニュアルでは_INを使用して行のコンストラクタを比較できると述べています。また、私のアプリケーションでも動作します(たとえ、常に_works_が_itのvalid_を意味するわけではないことに同意しても)。もちろん私は同等のOR節で置き換えることができますが、INは私の意見ではよりコンパクトに見えます – arilia