Für eine Suchanfrage ich habe folgendes:Eloquent whereRaw Anweisung und orWhereRaw ist NULL
DB::whereRaw('column = ?', 'foo')->orWhereRaw('column IS NULL')->get();
Hinzufügen der orWhereRaw
Anweisung gibt mir weniger Ergebnisse als nur die whereRaw
. Irgendwie scheint es die erste zu ignorieren, wenn die andere hinzugefügt wird. Es ist in der SQL-Anweisung enthalten. Gibt es eine andere Möglichkeit für einen String und Nullwert zu vergleichen?
Ich habe versucht, auch die folgende, wie unten vorgeschlagen:
return self::select('id')
->where('current_state', 'unavailable')
->orWhereNull('current_state')
->get();
Wenn ich den Auftrag (die whereNull ersten und die zweiten wo) das gibt mir unterschiedliche Ergebnisse auch ändern. Es scheint, als ob die inklusive Abfrage in Übereinstimmung mit der where-Klausel nicht korrekt funktioniert. Wenn ich reguläre where-Klauseln verwende, habe ich keine Probleme.
Laufen SELECT * FROM events WHERE current_state='unavailable' OR current_state IS NULL;
produziert das richtige Ergebnis für mich.
ich vereinbart, dass Sie verwenden sollten 'whereNull' und' orWhereNull' aber Ihre erste 'whereRaw' sollte wohl sein' where' als 'whereRaw' nicht akzeptiert, dass die Unterzeichnung – Chris
Sie Stimmt, das war ein Tippfehler. Ich werde das reparieren. – aynber
Das gibt mir immer noch weniger Ergebnisse, wenn ich die inclusive orWhereNull hinzufüge. return self :: select ('angel_id') -> where ('aktueller_Status', 'nicht verfügbar') -> orWhereNull ('current_state') -> get(); Wenn ich die Reihenfolge ändere (whereNull zuerst und wo wo), gibt mir das auch andere Ergebnisse. – Diederik