2017-02-23 66 views
1
SELECT @mynumber := number 
FROM tqueue 
WHERE STATUS = '4' 
AND get_ticket >= CURDATE() 
AND get_ticket < DATE_ADD(CURDATE() , INTERVAL 1 
DAY) 
GROUP BY services 
ORDER BY nomor ASC; 

UPDATE tqueue SET STATUS = '8' WHERE number = @mynumber ; 

我的問題是,我可以加入此選擇內部更新查詢嗎?因爲我在使用php中的multiquery時遇到問題?我想加入兩個查詢從MySQL,更新通過選擇?

此查詢更新狀態欄看看我的表

------------------------------------------ 
    number | status  | get_ticket 
------------------------------------------ 
    4    4   17:58:00 
    3    4   16:00:00 
    2    4   13:05:13 
    1    8   12:05:34 

使用該查詢我可以改變的最小數目,將改變從4到8層的狀態,當我的狀態4號2更新再次分鐘數將更改爲8,再次更新數字3到8的狀態,並將繼續這樣做,或者如果你有php代碼,你能給我示例代碼與php我的情況下,從選擇更新

+1

是的,你可以加入更新查詢內的select查詢 –

+0

顯示PHP/mysqli的用法。 – chris85

回答

0

使用第一個查詢爲subquerywhere條件。

UPDATE tqueue SET STATUS = '8' WHERE number =(SELECT number 
FROM tqueue 
WHERE STATUS = '4' 
AND get_ticket >= CURDATE() 
AND get_ticket < DATE_ADD(CURDATE() , INTERVAL 1 
DAY) 
GROUP BY services 
ORDER BY nomor ASC); 
+0

#1093 - 您無法在FROM子句中爲更新指定目標表'tqueue' – Heri