Comment créez-vous une LIKE
condition dans une db_select()
requête?
Je sais comment faire cela avec un db_query()
appel API, mais y a-t-il une syntaxe / méthode spéciale pour le faire db_select()
?
Comment créez-vous une LIKE
condition dans une db_select()
requête?
Je sais comment faire cela avec un db_query()
appel API, mais y a-t-il une syntaxe / méthode spéciale pour le faire db_select()
?
db_query
tant qu'espace réservé d'argument, vous pouvez également le passer en tant qu'argument...Query::condition
. Vous ne trouverez pas de documentation pour chaque opérateur individuel pour chaque type de requête, car cela n'aurait aucun sens de le faire. Tout passe par PDO à la fin de la journée, sidb_like
prépare correctement une variabledb_query
, alors par définition il préparera correctement la même variable pourdb_select
Réponses:
Après avoir fouillé dans la documentation Drupal, j'ai trouvé une solution dans la page de documentation de l'API db_like et SelectQuery: page doc du gestionnaire de conditions .
Par exemple
La condition à utiliser pour une requête similaire est
la source
db_like()
est nécessaire pour échapper correctement l'argument et (2) vous devez ajouter explicitement les caractères génériques. Il utilisera également le classement par défaut sur la base de données, et je ne pense pas qu'il existe un moyen d'en spécifier un autre.Vous pouvez également utiliser Drupal \ Core \ Database \ Database lors de la création d'une requête "LIKE". Il s'agit de la syntaxe alternative de Drupal 8 car db_select () est déconseillé.
Ou ajoutez des multiples avec la requête OU.
la source
Pour utiliser "comme" dans
db_select
est comme ci-dessous et a fonctionné pour moi ...Ici, la valeur exacte dans ROW1 est "[email protected]" et en utilisant la
LIKE
condition dansdb_select
j'ai obtenu la sortie "[email protected]".la source
cela fonctionne dans Drupal8 Version 1
Version 2
la source