我正在嘗試編寫一個MySQL函數,這個函數將使我能夠聚集工作人員在設定的時間段內完成的工作量,例如1天,1周,1個月等。每項工作都會在數據庫中生成一個ID條目。MySql組在同一個查詢中的多個時間戳查詢
條目的日期被設置爲時間戳。
我的問題是,我不清楚我將如何去調用數據庫來檢查在一個設定的時間戳期間有多少個條目。
下面是數據庫表
CREATE TABLE staffwork(
staff_id MEDIUMINT UNSIGNED NOT NULL,
id_of_work_inserted MEDIUMINT UNSIGNED NOT NULL,
job_id MEDIUMINT UNSIGNED NOT NULL,
data_table VARCHAR (65) NOT NULL,
entrytime int(11) NOT NULL,
INDEX message (staff_id)
);
下面是將數據放到桌子上,即時間戳查詢:
INSERT INTO staffwork
(staff_id, job_id, id_of_work_inserted, data_table, entrytime)
VALUES ('$staff_id', '$job_id', '$id_of_job', '$data_table', UNIX_TIMESTAMP(now()))";
下面是我的SQL函數:
function statsForEmployees工作($ staff_id) { global $ dbc;
$select = " SELECT
COUNT(job_id) AS totalWorkDone,
COUNT(job_id) AS oneDaysWorkDone,
COUNT(job_id) AS oneWeekWorkDone,
COUNT(job_id) AS oneMonthWorkDone
";
$from = " FROM
staffwork
";
$where = " WHERE
staff_id = '$staff_id
AND
entrytime >= now() - interval '1 day'
AND
entrytime >= now() - interval '1 week'
AND
entrytime >= now() - interval '1 month '";
$query = $select.$from. $where;
$result = mysqli_query ($dbc, $query)
return $result ;
}
我真的很感謝這方面的一些幫助和建議。
你好馬克·B,非常感謝你的回覆。我有點困惑,爲什麼你在查詢中做了兩個WHERE線索。你能解釋一下嗎?謝謝你的協助 – andreea115
只是你可以去的兩種方式的例子。假裝他們是「這樣或這種方式」 –