온라인 게임 (DayZ)에 로그인 한 플레이어의 목록을 얻으려고합니다. 백엔드 데이터베이스는 MySQL이며 사용자가 로그인했는지 여부를 확인하는 방법은 간단하지 않습니다. 내가이 도움말을 사용할 수있는 쿼리를 작성하고 있습니까?온라인 사용자를 확인하는 SQL 쿼리
기본적으로 플레이어가 시스템에 로그인하거나 로그 아웃 할 때마다 새로운 항목을 만드는 테이블이 player_login
입니다. 사용자가 로그인하면 이라는 필드가 2
으로 설정됩니다. 사용자가 로그 아웃하면 action
필드는 0
으로 설정됩니다. 결과는 다음 0
경우 몇 가지 smaple (단순화) 데이터
LoginID PlayerUID DateStamp Action
126781 79067462 2013-08-01 13:16:28 0
126777 79067462 2013-08-01 12:59:22 2
126775 79067462 2013-08-01 12:42:10 0
126774 79067462 2013-08-01 12:41:34 2
126773 79067462 2013-08-01 12:38:38 0
단일 사용자가 다음 쿼리를 통해 로그인하면 내가 찾아 테이블을 조회 할 수 있습니다
..
SELECT PlayerUID, Action
FROM player_login
WHERE PlayerUID = 79067462
ORDER BY Datestamp DESC
LIMIT 1
입니다 플레이어가 마지막으로 한 것은 로그인 이었으므로 온라인 상태입니다. 값이 2
이면 플레이어가 마지막으로 한 일은 로그 아웃이므로 오프라인 상태입니다. 내가 어려움을 겪고있는 것은이 쿼리를 최신 Action
값이 0
인 PlayerUID 목록으로 반환하여 현재 모든 플레이어에게 온라인으로 제공하는 것으로 변환하는 것입니다.
합니다. –
@DanJ 당신 궁금하지 않니? –
호기심에 의해서만, "로그인"하지만 명시 적으로 "로그 아웃"하지 않는 사용자를 어떻게 처리합니까 - 연결이 끊어 졌기 때문에 말합니까? –