sql >> Database >  >> RDS >> Mysql

mysql PDO hoe te binden LIKE

Je zou ook kunnen zeggen:

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

om de string samen te voegen aan het MySQL-uiteinde, niet dat daar in dit geval een speciale reden voor is.

Het wordt wat lastiger als de gedeeltelijke wrd waarnaar u zoekt, kan zelf een percentage of een onderstrepingsteken bevatten (aangezien die een speciale betekenis hebben voor de LIKE-operator) of een backslash (die MySQL gebruikt als een extra laag voor escape in de LIKE-operator - ten onrechte, volgens de ANSI SQL-standaard).

Hopelijk heeft dat geen gevolgen voor u, maar als u die zaak toch goed moet doen, is hier de rommelige oplossing:

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


  1. Wat is precies het verschil tussen primaire index en secundaire index?

  2. Mysql-query om rijen dynamisch naar kolommen te converteren

  3. PL/SQL - Lijstvariabele gebruiken in Waar in clausule

  4. Verschil tussen SET autocommit=1 en START TRANSACTION in mysql (Heb ik iets gemist?)