Mam tabeli tak:laravel Eloquent gdzie pole jest X lub zerowa
table
- field1: tinyint
- field2: varchar (nullable)
- datefield: timestamp (nullable)
Teraz chcę, aby wszystkie wpisy, gdzie pole1 wynosi 1, pole2 jest nieważna i gdzie datefield jest mniejsza niż X lub null. Próbowałem już czegoś takiego:
$query = Model::where('field1', 1)
->whereNull('field2')
->where('datefield', '<', $date)
->orWhereNull('datefield');
ale to nie działa. Zawsze otrzymuję każdy wpis, w którym data ma wartość zerową. Nie ma znaczenia, jakie są pozostałe pola. Próbowałem również podzielić go na 2 kwerendy: Najpierw uzyskać każdy wiersz, gdzie data jest mniejsza niż X lub null, a następnie (w oparciu o to) uzyskać wszystkie pola, gdzie pole 1 wynosi 1, a pole 2 ma wartość null.
Wynik był taki sam. Każdy pomysł, jak to zrobić?
To zaoszczędziło mi frustracji! Dzięki. –
można to zrobić przez coś takiego: whereIn ('column', ['value', null])? – MASh
@MASH nie jestem pewien. Napisałem to dość dawno temu i było to najlepsze podejście w tamtym czasie. Dlaczego nie spróbować? – James