我有以下查询
$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
和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);
最好的方法是什么?
答案 0 :(得分:0)
我假设您使用单引号搜索'Area V'
。我认为你只需要正确划分字符串。类似的东西:
// using apostrophes and PDO::PARAM_STR
$sql = $pdo->prepare("SELECT areas FROM ranks WHERE areas LIKE :area");
$sql->bindValue(':area', "%'" . $area . "'%", PDO::PARAM_STR);
您想要的值在SQL中表示为'%''Area V'''
。双引号用于将单引号放入字符串中。