0
這裏是場景。假設我有一個表Foo
,有兩列,bar
和baz
。我想檢查bar
和baz
的條件。這種情況只適用於兩列之一。無論哪列是真的,我想選擇其他列。如何在單個查詢中根據WHERE子句有條件地選擇要SELECT的列?
我可以寫爲兩個單獨的查詢,像這樣:
$one = Foo::select('bar as qux')->where('baz', $value);
$two = Foo::select('baz as qux')->where('bar', $value);
(爲了說明起見,在我的例子的條件時檢查所述列等於$value
)
之後,我想我可以得到兩個查詢的結果併合並它們。但是,我真的想要使用Paginator
,因爲它希望它成爲單個查詢。
我可以用這個選擇所有從表中的相關行:
$rows = Foo::where('baz', $value)->orWhere('bar', $value);
但是當時我不知道如何從中選擇bar
或baz
條件。看來我所尋求的解決方案將是上述兩種方法的組合。
是否有可能在一個帶有雄辯的單個查詢中做到這一點?我想我可以執行原始查詢,但如果可能的話,我寧願遠離原始查詢。謝謝。
我給你的第一反應是說:我不想讓'( )「結果馬上,因爲我想分頁他們。但是,然後它打我,我可以分頁'orWhere'的結果並循環。謝謝,看起來這是我的一個案例,超過了它! – cheryllium