MySQL의에서 (여기서 Z에서 선택 Y) X에 삽입 빠른 대안이 있습니까?

빅터 :
table_a

user_id  score  
1        10     
2        10      
3        10      
5        43      
6        43      
9        20      
10       42    



table_b

user_id  flag
1        0
2        0
3        0
4        1
5        1
6        0 
7        1

위의 경우, 내가 어떻게 채울 수 있습니다 table_b.flag1있는 경우 user_id에서 table_aA (이 score > 40)?

아이디 :

당신은 멀티 테이블을 사용할 수 UPDATE원하는 결과를 얻을 수 있습니다 :

UPDATE table_b b
JOIN table_a a ON a.user_id = b.user_id AND a.score > 40
SET b.flag = 1

JOIN의 행만 것을 조건 수단에 table_b대응하는 곳 user_id의 것은 table_a갖는다는이 score > 40그들의 플래그 세트를 가질 것이다 1. 당신이로도 설정 플래그를 원하는 경우 0해당하는 경우 score <= 40, 당신은의 값으로 조건을 사용할 수 있습니다 SET(같은 이후 MySQL의 취급 논리 값 1또는 0숫자 문맥에서) :

UPDATE table_b b
JOIN table_a a ON a.user_id = b.user_id
SET b.flag = a.score > 40

샘플 데이터의 경우에 결과는 table_b동일합니다 :

user_id     flag
1           0
2           0
3           0
4           1
5           1
6           1
7           1

dbfiddle에 데모

추천

출처http://10.200.1.11:23101/article/api/json?id=387359&siteId=1