[英]Sql Query Result based on Condition
我在下面的函数的sql查询结果的结果中有两个放两个条件:
目前使用的是:
public function search_project_name($term)
{
$params = array( ':term' => $term);
$sql = "SELECT * FROM projects WHERE project_name like '%$term%'ORDER BY projects.create_date DESC $limit";
$stmt = parent::query($sql, $params);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
$result[]=$row;
endwhile;
return $result;
}
您可以使用not
运算符添加这些条件:
SELECT *
FROM projects
WHERE a_name like '%$term%' AND
NOT (a_name = 'xxxx' and a_name = b_name)
问题部分是查询中的$term
,因此将$term
替换$term
:term
尝试更新代码:
public function search_project_name($term){
$params = array(
':term'=>$term);
$sql = "SELECT * FROM projects WHERE project_name like '%:term%'ORDER BY projects.create_date DESC $limit";
$stmt = parent::query($sql, $params);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
$result[] = $row;
endwhile;
return $result;
}
还有一个缺失的参数是您在查询中使用但未传递给函数的$limit
?
将$limit
作为第二个参数,默认设置为10行:
public function search_project_name($term, $limit = 10){
$params = array(
':term'=>$term);
$sql = "SELECT * FROM projects WHERE project_name like '%:term%'ORDER BY projects.create_date DESC $limit";
$stmt = parent::query($sql, $params);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
$result[] = $row;
endwhile;
return $result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.