나는 내 테이블 A에 열라고보기는 내가 그렇게 같은 전망을 열 증가 할 있습니다MySQL의 증가 값 - 미스 때로는
UPDATE A set views = views + 1 WHERE ID = blabla LIMIT 1;
이 그것을 할 수있는 방법처럼 보인다 (?)를 적어도 나에게. 또는 그렇게 생각했습니다.
는 (PHP에서) 내가 할 때처럼 보인다 :
$views = get_viewcount($id);
$views++:
save_viewcount($id, $views); //here we just update views with the $views variable
이 항상 작동합니다. 그러나 get_viewcount를 사용하여 DB에 추가 왕복을 가한 다음 PHP에서이를 증가시키고 다시 전송합니다. 그것은 항상 작동합니다.
"때때로"위의 SQL 문이 작동합니다. 나도 알아 - 나는 때때로 프로그래밍에서 "때로는"이라는 단어를 싫어한다. 그러나 다른 방식으로 말해서 나는 WHEN이라고 말할 수는 없지만 한 번에 SQL로 직접 할 때 증가하지는 않는다.
제안 사항?
이상하게 보입니다.실제로 SQL이 더 잘 작동 할 것으로 기대합니다. PHP에 동시성 문제가 있습니다 (다른 사용자 요청이 줄 1과 줄 3 사이에 오면 어떻게 될까요?). –
여기에는 잘못된 동시성 문제가 있습니다. 이 문제는 수정해야합니다. – spender