2017-05-05 55 views
0

假設我有一個MySQL查詢像這樣:從結果集刪除記錄,如果一個計算字段在MySQL是0

SET @group = 0; 
SELECT Player_Id, IF(New_Group, @group:[email protected] + 1, @group) AS Group_Id 
FROM [table] 
ORDER BY Player_Id; 

這會給我的Player_Id個列表和計算Group_Id秒(這是數字) 。如果我的查詢結果中的Group_Id0,我想刪除任何記錄。任何人都可以提供幫助,因爲我的SQL技能很少

+1

您是否嘗試過實施,在一個DELETE語句,而不是一個SELECT語句? – kojow7

+0

@ kojow7我只想從結果中刪除它們不是來自數據庫 –

+0

您可以使用WHERE –

回答

0

這應該解決您的問題:

SET @group = 0; 
DELETE FROM [TABLE] WHERE Player_Id IN (
    SELECT u.Player_Id FROM (
     SELECT 
      Player_Id, 
      IF(New_Group, @group:[email protected] + 1, @group) AS Group_Id 
     FROM [TABLE] 
     ORDER BY Player_Id 
    ) AS u 
    WHERE 
     u.Group_Id = 0 
); 
相關問題