我有以下查询
$area = "AREA V";
$sql = $pdo->prepare("SELECT areas FROM ranks WHERE areas LIKE :area");
$sql->bindValue(':area', '%' . $area . '%');
$sql->execute();
$num = $sql->rowCount();
列area
包含数据,例如'AREA I', 'AREA V', 'AREA VII'
。
问题是,当我执行查询时,LIKE '%AREA V%'
有没有AREA V
但有AREA VI
and的结果AREA VII
。没错,应该如此,但我不希望那样。
我试图在LIKE
子句中加上撇号,但我没有让它起作用。
我尝试过的事情:
// using apostrophes and PDO::PARAM_STR
$sql = $pdo->prepare("SELECT areas FROM ranks WHERE areas LIKE :area");
$sql->bindValue(':area', '%'' . $area . ''%', PDO::PARAM_STR);
// using IN
$sql = $pdo->prepare("SELECT areas FROM ranks WHERE :area IN (areas)");
$sql->bindValue(':area', $area);
最好的方法是什么?