sql >> Base de Datos >  >> RDS >> Mysql

mysql PDO cómo vincular LIKE

También podrías decir:

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

para hacer la unión de cadenas al final de MySQL, no es que haya una razón particular para hacerlo en este caso.

Las cosas se complican un poco más si el wrd parcial que está buscando puede contener un carácter de porcentaje o de subrayado (dado que tienen un significado especial para el operador LIKE) o una barra invertida (que MySQL usa como otra capa de escape en el operador LIKE — incorrectamente, de acuerdo con el estándar ANSI SQL).

Con suerte, eso no te afectará, pero si necesitas resolver ese caso correctamente, esta es la solución complicada:

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