我遇到了包含'like'语句的查询问题。与'Like'查询相关的MySQL问题
这里是我的代码:
function get_number_of_locations_by_zip_tag($zip, $tag)
{
global $db;
$query = "SELECT * FROM location WHERE zip = :zip AND disabled = 0 AND (tags LIKE :tag OR name LIKE :tag) LIMIT :start, :number";
$statement = $db->prepare($query);
$statement->bindValue(':zip', $zip);
$statement->bindValue(':tag', '%'.$tag.'%', PDO::PARAM_STR);
$statement->execute();
$locations = $statement->fetchAll(); //fetch();
$statement->closeCursor();
return $locations;
}
我期待查询返回在标签匹配无论是“名”或“标签”字段的行,而是它只会返回行,其中标签匹配。
如果我切换查询:
$query = "SELECT * FROM location WHERE zip = :zip AND disabled = 0 AND (name LIKE :tag OR tags LIKE :tag) LIMIT :start, :number";
那么结果是相反的,它只会返回其中名称字段匹配的行,并忽略标签领域。
有人看到这个查询有什么问题吗?当我开始开发时,它在Windows上的XAMPP服务器上工作正常,但是当我将所有内容切换到LAMP服务器时,此查询不再正常工作。
任何帮助表示赞赏,
请[不要添加签名或标语到您的帖子](http://stackoverflow.com/faq#signatures)。 – meagar