次のように言うこともできます:
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
MySQLの最後で文字列結合を行うためであり、この場合に特別な理由があるわけではありません。
部分的なwrd
の場合、状況は少し複雑になります 探しているもの自体に、パーセント文字またはアンダースコア文字(LIKE演算子に対して特別な意味があるため)またはバックスラッシュ(MySQLがLIKE演算子のエスケープの別のレイヤーとして使用します— ANSI SQL標準によると誤って)を含めることができます。
うまくいけば、それはあなたに影響を与えませんが、あなたがそのケースを正しくする必要があるならば、ここに厄介な解決策があります:
$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);