[英]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.