2014-10-02 43 views
0
SELECT last_played INTO @lp FROM sr WHERE creator_id = 1 AND playing = 1 LIMIT 1; 
SELECT stream_id INTO @sid FROM account_stream WHERE owner = 1 AND enabled = 1 LIMIT 1; 
UPDATE sr SET last_played = 1412259166 WHERE creator_id = 1 AND playing = 1 LIMIT 1; 
IF @lp != NULL THEN UPDATE streams SET duration = (duration + (1412259166 - @lp)) WHERE id = @sid LIMIT 1; END IF; 

我在做什麼:當@lp返回一些東西(換句話說,當在第一個查詢中播放時是1),然後執行最後的更新流查詢。MySQL IF表達式返回錯誤

我得到這個錯誤在phpMyAdmin壽:

1064 - 你在你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'IF @lp!= 0 THEN UPDATE streams SET duration =(duration +(1412259166 - @lp))'附近使用正確的語法。第1行的W'

I從來沒有與MySQL的條件如果之前,所以,任何人都可以請幫助我嗎?

+0

我已經瞭解到,如果不能使用外部程序。任何建議仍然受歡迎。 – 2014-10-02 14:47:32

+0

''@lp!= NULL''''不應該是''@lp IS NOT NULL''''? – 2014-10-02 15:01:56

回答

1
UPDATE streams SET duration = (duration + (1412259166 - @lp)) 
WHERE @lp IS NOT NULL AND id = @sid