CakePHP:随机查询一个结果,排除两个值
Posted
技术标签:
【中文标题】CakePHP:随机查询一个结果,排除两个值【英文标题】:CakePHP: Random query with one result, exclude two values 【发布时间】:2021-12-16 17:18:25 【问题描述】:我尝试在随机查询中排除两个值,但它被忽略了。也许你们中的一个可以启发我。这是我的代码:
$random = $this->Gerde
->find('all', [
'conditions' => [
'OR' => [
'NOT' => [
['employees' => 'BLUE'],
['employees' => 'RED']
]
]
]
])
->order('rand()')
->first();
我得到了我的一个随机结果,但红蓝员工还是出现了。我的逻辑很烂吗?提前致谢。
【问题讨论】:
您是否希望在每次获得的最终结果中排除这两个值? 我如愿得到单个随机结果。但有时会出现不需要的结果。'conditions' => ['employees NOT IN' => ['BLUE', 'RED']]
工作吗?
非常感谢!将您的答案放在我的档案中以供进一步举例。与此同时,我遇到了另一个解决方案。将对其进行测试并报告... ['conditions' => ['NOT' => [['employees' => 'BLUE'],['employees' => 'RED']] ] ]
@GregSchmidt 谢谢,我的不好。您的解决方案效果很好!
【参考方案1】:
GregSchmidts 的答案是正确的。 我的代码现在看起来像这样,就像一个魅力:
$random = $this->Gerde->find('all', ['conditions' => ['employees NOT IN' => ['BLUE','RED'] ] ])
->order('rand()')
->first();
【讨论】:
以上是关于CakePHP:随机查询一个结果,排除两个值的主要内容,如果未能解决你的问题,请参考以下文章