0
나는 3 개의 테이블을 가지고 있습니다. 그들 중 하나는 users_data를 저장합니다.MySQL은 하나의 쿼리에서 모든 데이터와 UPDATE를 선택합니다.
나는이 SQL 코드 실행
SELECT @rownum := @rownum + 1 AS position,
user_id, score, user_type
FROM users_data
ORDER BY score DESC
과 같은 결과 :
을하고 내가 좋아하는 사용자를 위해이
2 테이블이 그 내 테이블
users1
+----+----------+----------+
| id | username | position |
+----+----------+----------+
| 1 | uname | 0 |
| 2 | uname2 | 0 |
| 3 | uname3 | 0 |
| 5 | uname5 | 0 |
| 11 | uanme11 | 0 |
| 12 | uname12 | 0 |
+----+----------+----------+
users0
+-----+----------+----------+
| id | username | position |
+-----+----------+----------+
| 1 | uname | 0 |
| 111 | uname111 | 0 |
| 138 | uname138 | 0 |
| 241 | uname241 | 0 |
+-----+----------+----------+
SELECT 쿼리를 실행하는 동안 사용자 위치를 업데이트하고 싶습니다.
if user_type is 0, update users0.position = @rownum
if user_type is 1, update users1.position = @rownum
결과는 다음과 같이해야합니다 :
users1
+----+----------+----------+
| id | username | position |
+----+----------+----------+
| 1 | uname | 1100 |
| 2 | uname2 | 1100 |
| 3 | uname3 | 1075 |
| 5 | uname5 | 1075 |
| 11 | uanme11 | 1075 |
| 12 | uname12 | 1175 |
+----+----------+----------+
users0
+-----+----------+----------+
| id | username | position |
+-----+----------+----------+
| 1 | uname | 1075 |
| 111 | uname111 | 1025 |
| 138 | uname138 | 1025 |
| 241 | uname241 | 1025 |
+-----+----------+----------+
왜 선택 쿼리 또는 INNER뿐만 아니라 가입과 갱신을 시도하지? 당신은 어떻게 입장을 유지하고 있으며 어떤 테이블에 그것이 존재합니까? –