Wie baut man eine LIKE
Bedingung in einer db_select()
Abfrage auf?
Ich weiß, wie man das mit einem db_query()
API-Aufruf macht, aber gibt es eine spezielle Syntax / Methode dafür db_select()
?
Wie baut man eine LIKE
Bedingung in einer db_select()
Abfrage auf?
Ich weiß, wie man das mit einem db_query()
API-Aufruf macht, aber gibt es eine spezielle Syntax / Methode dafür db_select()
?
db_query
als Platzhalter für Argumente übergeben können, können Sie auch als Argument für zukünftige Verweise übergeben...Query::condition
. Sie finden keine Dokumentation für jeden einzelnen Operator für jeden Abfragetyp, da dies keinen Sinn macht. Alles geht am Ende des Tages durch PDO, wenndb_like
eine Variable korrekt vorbereitet wirddb_query
, dann wird per Definition dieselbe Variable korrekt vorbereitet fürdb_select
Antworten:
Nach dem Durchstöbern der Drupal-Dokumentation wurde eine Lösung in der db_like API-Dokumentationsseite und der SelectQuery: Condition- Handler- Dokumentationsseite gefunden .
Beispielsweise
Bedingung für eine ähnliche Abfrage ist
quelle
db_like()
erforderlich ist, um das Argument ordnungsgemäß zu umgehen, und (2) dass Sie die Platzhalterzeichen explizit hinzufügen müssen. Es wird auch die Standardkollatierung für die Datenbank verwendet, und ich glaube, es gibt keine Möglichkeit, eine andere anzugeben.Sie können auch Drupal \ Core \ Database \ Database verwenden, wenn Sie eine "LIKE" -Abfrage erstellen. Dies ist die alternative Drupal 8-Syntax, da db_select () veraltet ist.
Oder fügen Sie Mehrfache mit ODER-Abfrage hinzu.
quelle
Für die Verwendung von "like" in
db_select
ist wie folgt und arbeitete für mich ...Hier ist der genaue Wert in ROW1 "[email protected]" und unter Verwendung der
LIKE
Bedingung in habedb_select
ich die Ausgabe als "[email protected]" erhalten.quelle
es funktioniert in Drupal8 Version 1
Version 2
quelle