Laravel 4, eloquent - zwischen Aussage und Operatoren

7

Es gibt eine Abfrage, die ich zur Ausführung in mysql verwende:

%Vor%

Es funktioniert gut, aber mit Laravel 4 ist die einzige Möglichkeit, diese Abfrage zu erstellen, etwas wie

zu haben %Vor%

Dieser Weg scheint nicht zu funktionieren, weil ich nicht das gleiche Ergebnis habe, wenn ich das übliche "select * ..." verwende.

Irgendeine Idee?

Nur um meine Anfrage zu klären: In meinem Fall habe ich nicht "... where Spalte zwischen value1 und value2" aber "wo Wert zwischen commun" So scheint es mir, dass ich nicht "wherebetween"

verwenden kann     
Shaft jackson 27.11.2013, 00:35
quelle

4 Antworten

9

Das sollte es tun ...

$results = my_model::select('*')->whereRaw("$val between col1 and coL2")->get();

Ich denke, das ist ziemlich sicher, aber Sie müssen möglicherweise zuerst $val bereinigen.

    
user1669496 27.11.2013, 18:11
quelle
32

Sie können so etwas versuchen

%Vor%

Oder verwenden Sie die Variable

%Vor%

Dadurch werden alle Datensätze abgerufen, deren ID zwischen 1 und 5 liegt.

    
The Alpha 27.11.2013 00:49
quelle
0

Ohne ein MySQL-Modell zu erstellen, können wir eine Abfrage erzeugen wie:

%Vor%     
Somnath Muluk 20.04.2015 10:37
quelle
0

Ihr beredtes Beispiel mit where () funktionierte nicht, weil Sie die Vergleichsoperatoren umgekehrt haben. Wenn Sie Zeilen mit einem Wert zwischen col1 und col2 abrufen möchten, sollte dies wie folgt aussehen:

%Vor%

Beachten Sie, dass die Vergleichsoperatoren umgekehrt sind, um zu sagen: "val ist größer oder gleich col1 und val ist kleiner oder gleich col2."

Sie müssen vielleicht ein wenig schielen, um es zu sehen. :)

    
mariordev 18.02.2016 00:15
quelle