[英]WHERE clause in mysql php
这是mysql语句
$query="SELECT * FROM `error_report` AS e
INNER JOIN `pages` AS p ON e.page_id=p.page_id
WHERE `task_id` ='".$this->task_id."' AND
((google_host_fail=1
OR robots_noindex_nofollow=1
OR xrobots_noindex_nofollow=1
OR google_cache_fail=1
OR forbidden_word=1)
OR (google_title_fail=1 AND h1_fail=1 AND h2_fail=1 AND h3_fail=1))";
我想在这里返回结果,条件是有任务id ..和/或括号中包含的两个状态中的任何一个。问题出在最后的where语句中,我想要一个条件,即所有这些字段。
我有另一个类似的语句的SQL问题。
public function check_success()
{
$query="SELECT e.* FROM `error_report` AS e
INNER JOIN `pages` AS p ON e.page_id=p.page_id
WHERE `task_id` ='".$this->task_id."'
AND ((google_title_fail=0) OR (google_title_fail=1 AND h1_fail=0))";
$result=$this->db->query($query)->result_array();
if(count($result)>0)
{
return 1;
}
return 0;
}
我想达到上述目标。.但是我看不到我的陈述有效
我如何用括号括起来where语句,以便它们在两个函数中都可以使用。
public function findFinalResult()
{
if($this->check_fail())
{
return "Failure";
}
else if($this->check_success())
{
return "Success";
}
return "Warning";
}
最终结果每次都会失败。 为什么?!?
SELECT * FROM error_report AS e INNER JOIN pages AS p ON e.page_id=p.page_id WHERE task_id ='151' AND (OR google_host_fail=1 OR robots_noindex_nofollow=1 OR xrobots_noindex_nofollow=1 OR google_cache_fail=1 OR forbidden_word=1) OR (google_title_fail=1 AND h1_fail=1 AND h2_fail=1 AND h3_fail=1)
该错误是由于括号开头的不必要的OR语句而发生的。
...AND (OR google_host_fail=1 OR robots_noindex_nofollow=1
OR xrobots_noindex_nofollow=1 OR google_cache_fail=1 OR forbidden_word=1)...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.