Wie schreibe ich eine SQL-Suchanweisung, wobei die Eingabe eine durch Leerzeichen getrennte Zeichenfolge ist und jedes Wort zu einer anderen Spalte gehört?SQL Where-Klausel mit Delimiter
Zum Beispiel:
Sucheingabe: 2011 Audi Q7
Wo "2011" sucht nach dem Jahr,
"Audi" sucht nach der Marke,
und "Q7" sucht nach dem Modell
ich AJAX mit einem Filter für meine SQL-Tabelle zu erstellen, hier ist der Code, den ich mit bin zu arbeiten, aber nicht funktioniert:
Datenbank
|year|make|model|
----------------
|2017|Audi|Q7
----- ---- -----
... | ...| ...
PHP
public function categoryOptions() {
$term = $this->request->input('term');
$options = VehiclesModel::where('year', 'like', '%'.$term.'%')->where('make', 'like', '%'.$term.'%')->where('model', 'like', '%'.$term.'%')->get();
return $options->pluck('id','year','make','model');
}
Ich denke, ich muss ein Trennzeichen in verwenden, aber nicht sicher, wie das gemacht wird.
Sie müssen den Begriff in die relevanten Teile aufzuspalten, bevor Sie die SQL-Klausel versuchen und bauen. Wenn sie immer durch Leerzeichen getrennt und immer in der richtigen Reihenfolge angezeigt werden, können Sie etwas wie $ terms = explode ("", $ term) machen und dann nach $ terms [0] 'und' $ terms suchen [1] '. – MCMXCII