Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql PDO comment lier LIKE

Vous pouvez également dire :

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

pour que la chaîne se joigne à la fin de MySQL, pas qu'il y ait une raison particulière de le faire dans ce cas.

Les choses deviennent un peu plus délicates si le wrd partiel que vous recherchez peut lui-même contenir un caractère de pourcentage ou de soulignement (car ceux-ci ont une signification particulière pour l'opérateur LIKE) ou une barre oblique inverse (que MySQL utilise comme une autre couche d'échappement dans l'opérateur LIKE — incorrectement, selon la norme ANSI SQL).

J'espère que cela ne vous affecte pas, mais si vous avez besoin de résoudre ce problème, voici la solution compliquée :

$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);