我有一个问题,也许有人可以帮我弄清楚实现解决方案的最佳方法。我想做的是反过来:
http://doc.silverstripe.com/framework/en/topics/datamodel#highlighter_745635
WHERE ("LastName" = 'Minnée' AND ("FirstName" = 'Sam' OR "Age" = '17'))
我希望得到以下内容:
WHERE( ("LastName" = 'Minnée') OR ("FirstName" = 'Sam' AND "Age" = '17'))
现在我找不到任何方法来实现这种效果,因为我无法在filterAny中添加过滤器
现在,我正在使用get() - > where(...)选项,但是如果他们是替代选项而不必编写正常的SQL代码,则更想知道这个问题。
答案 0 :(得分:2)
As' AND'有一个更高的优先级,它不需要在括号中。你可以把它写成:
WHERE( "LastName" = 'Minnée' OR "FirstName" = 'Sam' AND "Age" = '17')
但据我所知,在第一眼看来,没有使用where()就没有办法写这个。如果您找到方法,请告诉我们。对于debuging,您可以通过调用函数sql():
来显示生成的SQL-Query... get()->where( ... )->sql();