2013-07-11 54 views
0

我想知道如何做一個查詢中MySQL得到了ID_COUNT/8的剩餘部分。做一個SELECT在MySQL中返回一個ID的剩餘計數/ 8

下面是一個例子表:

ID (INT) | PRODUCT ID | TIME 
    1  |  14  | 09:34:00 
    5  |  26  | 09:47:00 
    5  |  01  | 09:58:00 
    1  |  02  | 10:10:00 
    2  |  63  | 10:36:00 
    4  |  59  | 10:47:00 
    3  |  18  | 11:00:00 
    1  |  27  | 11:15:00 
    5  |  36  | 11:38:00 
    1  |  44  | 09:34:00 
    5  |  55  | 09:47:00 
    5  |  14  | 09:58:00 
    1  |  24  | 10:10:00 
    2  |  54  | 10:36:00 
    4  |  44  | 10:47:00 
    3  |  54  | 11:00:00 
    1  |  64  | 11:15:00 
    5  |  14  | 11:38:00 

什麼,我想在這裏做的是,每次插入新行的時候,我想的是IDCOUNT(例如,用於ID=5它會是6),然後他們將這個數字除以8(6/8),然後得到該部分的剩餘部分。

我使用PHP的方式,如果沒有隻與MySQL做它的方式。

在此先感謝,任何問題不屬於免問! 米格爾。

+0

原諒我,如果這是一個愚蠢的問題,但爲什麼8? 8是一個數字,你會永遠想用來分裂你的數量,或者只是在這種情況下? –

+0

你想做的整個計算在查詢還是會確定,如果計數提取物使用的查詢,然後用PHP代碼來計算? –

+0

GolezTrol - 是的,我只是在計數,但我已經設法做到這一點,這要歸功於yAnTar的回覆。 –

回答

0

使用MOD功能

查詢您例如

SELECT COUNT(1) MOD 8 AS result 
FROM `table` 
WHERE id=5 

查詢爲常見的例子

SELECT id, COUNT(1) MOD 8 AS result 
FROM `table` 
GROUP BY id 
+0

感謝yAnTar它做到了!不知道MOD功能。 ;) –

0
SELECT MOD(cnt, 8) FROM (SELECT COUNT(ID) cnt FROM mytable GROUP BY ID) 
+0

感謝您的回覆,不知道MOD功能,使用它,它的工作! –

0

可以使用mod()功能:

select mod(count(*), 8) 
from t 
where id = @Last_Id 

id不是自動遞增的,所以你不能使用last_inserted_id()

+0

感謝您的回覆,不知道mod功能,它的工作! –