sql >> Databasteknik >  >> RDS >> Mysql

Forcera exakt sträng MATCH för PDO-förberedda uttalanden

Se till att du sätter citattecken runt variabeln som anges i AGAINST .

I PHP:

$some_term = '"'.$some_term.'"'; // Adds quotes around string

$stmt = $db->prepare('SELECT * FROM example WHERE MATCH(some_column) AGAINST(:some_term)');
$stmt->bindParam(':some_term', $some_term, PDO::PARAM_STR);
$stmt->execute();

Eller så kan du också göra det i MySQL-satsen:

$stmt = $db->prepare('SELECT * FROM example WHERE MATCH(some_column) AGAINST(CONCAT(\'"\',:some_term,\'"\')');
$stmt->bindParam(':some_term', $some_term, PDO::PARAM_STR);
$stmt->execute();

Enligt MySQL-dokumentationen om booleska fulltextsökningar :




  1. Återkomsten av XFS på Linux

  2. SQL Server 2008 Spatial:hitta en punkt i polygon

  3. SQL:Uppdatera en rad och returnera ett kolumnvärde med 1 fråga

  4. Skiftlägeskänslig sökning i Django, men ignorerad i Mysql