有没有办法翻译以下查询(只有WHERE IN子句)

SELECT * FROM table WHERE (first, second) IN ((1,2),(2,3))

到Laravel Eloquent语法?

我已经尝试将数组作为 Table::whereIn() 的第一个参数传递,但是在该过程的某个地方(Illuminate \ Database \ Grammar:58),它被传递给 strtolower() ,它不接受数组 .

有解决方法吗?也许涉及 whereInExistingQuery 方法的东西?

如果没有,你知道如何实现这样的功能吗?

CLARIFICATION :之前提到的条款意味着 (first = 1 AND second = 2) OR (first = 2 AND second = 3) . 当然,我可以在所有对的嵌套查询中执行此操作,但我希望有更优雅/直接的解决方案 .

UPDATE :因为此查询在例如中无效 . MSSQL,Oracle或sqlite,唯一的解决方案是过滤列和值:

$columns = ['first', 'second'];
$values = [
    [
        'first' => 1,
        'second' => 2
    ],
    [
        'first' => 2,
        'second' => 3,
    ]
];
Table::where(function($query) use ($columns, $values) {
    foreach ($values as $valueArray) {
        $query->orWhere(function($innerQuery) use ($columns, $valueArray) {
            foreach ($columns as $column) {
                $innerQuery->where($column, '=', $valueArray[$column]);
            }
        });
    }
});