2016-03-12 29 views
-1
$data = true ;  
$query1 = "SELECT count(attendence) as total_attendence  
      FROM employee 
      INNER JOIN attendence ON employee.emp_id = attendence.employee_id 
if($data , 'where $this->action='$this->value' AND MONTH(date)=MONTH(CURDATE())','') "; 

上面的SQL代碼的條件子句的功能是給我的錯誤使用「附近有if語句錯誤」如何,如果在SQL

+0

'IF'不是在MySQL查詢允許。這是一廂情願的想法嗎? – tadman

回答

1

右鍵,SQL是一種語法,不是一種編程語言,所以你不能使用IF語句。 「SELECT count(attendence)as total_attendence FROM employee INNER JOIN attentend ON employee.emp_id = attendence.employee_id AND MONTH(date)= MONTH(CURDATE())','')」;

你想在這裏完成什麼? 如果($的數據,「其中$這個 - >行動= $這個 - >值」

Using an IF Statement in a MySQL SELECT query

的IF/THEN/ELSE結構使用的是隻在存儲過程和函數有效。您查詢將需要重構,因爲您不能使用IF()函數來控制這樣的WHERE子句的流程。

可以在查詢中使用的IF()函數主要用於用於選擇基於特定條件的不同數據的查詢的SELECT部分​​,而不是在查詢的WHERE部分中使用太多:

SELECT IF(JQ.COURSE_ID = 0, '有些結果如果真', '有些結果如果假'),OTHER_COLUMNS FROM ... WHERE ...

+0

IF(expr,if_true_expr,if_false_expr)MSDN說你可以使用if(),if - else - 。在SQL查詢案例條件 – wasim

+0

我想運行兩個查詢到一個,當員工ID是真正的「應該執行條件」否則查詢應該爲所有員工提取 – wasim

+0

好的謝謝瑞安格里芬 – wasim