【发布时间】:2019-12-10 15:50:49
【问题描述】:
我正在从事 SilverStripe 项目。在我的项目中,我需要编写手动/自定义查询。我试图找出在我的查询中设置“或在哪里”“在哪里”的位置。
这是我当前的代码
$sqlQuery = new SQLSelect();
$sqlQuery->setSelect('Player.*');
$sqlQuery->setFrom('Player');
$sqlQuery->addWhere([ '"Player"."ID"' => 1 ]);
$sqlQuery->addWhere([ '"Player"."ID"' => 2 ]);
$sqlQuery->addWhere([ '"Player"."ID"' => 3 ]);
我想要做的是我试图选择播放 id 为 1 或 2 或 3 的记录。但它不起作用,因为它将与 AND 而不是 OR 连接。如何使用 where in 或 where?
我想过使用 setWhereAny。问题是我们不能为 PHP 中的数组设置相同的数组键,如下所示。
$sqlQuery->setWhereAny([ 'ID' => 1, 'ID' => 2 ])
这也行不通
$sql->setWhereAny([ 'ID' => 1 ])->setWhereAny([ 'ID' => 2 ]);
【问题讨论】:
-
$sqlQuery->setWhereAny([ 'ID' => 1, 'ID' => 2 ]) setWhereAny([ 'ID' => 1 ])->setWhereAny([ 'ID' => 2 ]);
标签: silverstripe silverstripe-4