Mysql
 sql >> Database >  >> RDS >> Mysql

mysql PDO come associare LIKE

Potresti anche dire:

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

per eseguire l'unione della stringa alla fine di MySQL, non che ci sia un motivo particolare per farlo in questo caso.

Le cose diventano un po' più complicate se il parziale wrd che stai cercando può contenere una percentuale o un carattere di sottolineatura (poiché quelli hanno un significato speciale per l'operatore LIKE) o una barra rovesciata (che MySQL usa come un altro livello di escape nell'operatore LIKE — erroneamente, secondo lo standard ANSI SQL).

Si spera che questo non influisca su di te, ma se hai bisogno di risolvere il caso, ecco la soluzione disordinata:

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