2015-07-18 5 views
2

У меня есть turns col. который обновляется каждые полчаса и добавляет 5 поворотов каждому пользователю на моем сайте.limit column в базе данных с UPDATE

Я хочу сделать ограничение, например 300, и каждый пользователь, у которого есть 295 или более, будет обновлен до 300, не более или менее.

Это мой запрос прямо сейчас:

UPDATE `user_d` SET turns=turns+5 WHERE ID='".$id."' 

Если я добавлю «ГДЕ получается < 300» пользователей, которые имеют 298, например, подскочат до 303 (сверх лимита), то как я ограничил его до 300?

Thx! мой английский не очень сильный, и я попытался сделать его понятным, но, пожалуйста, попросите меня попытаться объяснить лучше, если вы не понимаете, что я имел в виду.

+1

Если вы знаете, в какое время каждый пользователь начал тогда зачем «хранить» это вообще!?! – Strawberry

+0

каждый пользователь использует повороты по-разному, это не время. – OfirH

ответ

2

Использование SQL случай, получить обороты ниже 296, чтобы ограничить его 300

UPDATE 
     `user_d` 
    SET 
     turns 
     (
      CASE 
       WHEN 
        ((turns) < 296) 
       THEN 
        turns=turns+5 
       ELSE 
        (turns) 
      END 
     ) 
    WHERE 
     ID='".$id."' 
+0

спасибо !! часть '(turn)' находится там, где я ставлю 'turn = 300', я прав? – OfirH

+1

LEAST кажется более простым – Strawberry

Смежные вопросы