Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Forçar MATCH de string exata para instruções preparadas por PDO


Certifique-se de colocar aspas em torno da variável especificada em AGAINST .

Em 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();

Ou você pode fazer isso na instrução MySQL também:
$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();

De acordo com a documentação do MySQL sobre pesquisas booleanas de texto completo :