How do I update last row of a group in MySQL
Yes, there is a workaround, using JOIN to a derived table:

UPDATE tableX AS t
  JOIN
    ( SELECT user, MAX(date) AS date
      FROM tableX
      GROUP BY user
    ) AS c
    ON  t.user = c.user
    AND t.date &lt; c.date
SET 
    t.current = 0 ;




If (user, date) is not enough to guarantee uniqueness and there is some other id column that is either unique or primary key (or the (user, date, id) is unique, that's enough), you can do this to keep only one row per user with current=1:

UPDATE 
    ( SELECT DISTINCT user_id
      FROM tableX 
    ) AS d
  JOIN
    tableX AS t
    ON  t.user_id = d.user_id 
    AND (t.date, t.id) &lt;&gt;
        ( SELECT i.date, i.id
          FROM tableX AS i
          WHERE i.user_id = d.user_id
          ORDER BY i.date DESC, i.id DESC
            LIMIT 1 
        )
SET 
    t.current = 0 ;