2017-05-05 37 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 
); 
相关问题