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

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

不言
不言앞으로
2019-03-20 11:21:433396검색

이 글은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제