> 데이터 베이스 > MySQL 튜토리얼 > 쿼리 결과 세트를 통해 MySql에서 데이터를 업데이트하는 방법 소개

쿼리 결과 세트를 통해 MySql에서 데이터를 업데이트하는 방법 소개

不言
풀어 주다: 2019-03-20 11:21:43
앞으로
3460명이 탐색했습니다.

이 글은 MySql이 쿼리 결과 세트를 통해 데이터를 업데이트하는 방법을 소개합니다. 이는 특정 참조 가치가 있으므로 도움이 필요한 친구에게 도움이 되기를 바랍니다.

테이블 구조

   现在有用户表和用户实名认证表,user_info,user_card。
   user_info中的字段有user_id,user_name 。
   user_card中的字段有user_id,user_card,user_name 。
   其中user_name为用户实名认证的信息,user_info中做了字段冗余。
로그인 후 복사

Problem

   用户表user_info中的user_name和user_card中的user_name不同步。
   user_card中有值,user_info中没有值。
   需要将user_card中的user_name同步到user_info中去。
로그인 후 복사

Solution

1. user_info에 user_name이 비어 있는 데이터를 코드를 통해 조회한 후, user_id를 통해 사용자 실명 인증 데이터를 조회하여 동기화합니다.

     select user_id from user_info where user_name = '' ;

     select * from user_card where user_id in (上面的结果集) ;

     通过代码更新数据
로그인 후 복사

2. 공동 테이블 쿼리 후 데이터 업데이트

    SELECT
      c.user_id ,
      c.user_name
    FROM
        user_info AS u
    LEFT JOIN user_card AS c ON u.user_id = c.user_id
    WHERE
        u.user_name = '';  

    通过代码更新数据
로그인 후 복사

3. MySql을 통해 인라인으로 데이터 업데이트

    先写出更新语句
    UPDATE `user_info` as u SET u.user_name = '结果集' ;

    再获取条件结果集
    SELECT
      c.user_id ,
      c.user_name
    FROM
        user_info AS u
    LEFT JOIN user_card AS c ON u.user_id = c.user_id
    WHERE
        u.user_name = '';  

    最后内联更新
    UPDATE `user_info` as u
    INNER JOIN
    ( 
        SELECT
          c.user_id ,
          c.user_name
        FROM
            user_info AS u
        LEFT JOIN user_card AS c ON u.user_id = c.user_id
        WHERE
            u.user_name = '';  
    ) as r ON u.user_id = r.user_id SET u.user_name = r.user_name ;
로그인 후 복사

이 기사는 여기에 있습니다. 더 많은 흥미로운 내용을 보려면 PHP 중국어에 대한 MySQL 튜토리얼을 참조하세요. 홈페이지 영상 칼럼!

위 내용은 쿼리 결과 세트를 통해 MySql에서 데이터를 업데이트하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿