mysql batch modify query result set

SQL does not support direct modification of query results, so to which table the field to be modified belongs to, update that table, where the primary key is equal
. The where condition of mysql update does not support the result set of direct in sub-query, so the sub-query needs to be nested outside. One layer query and specify alias

UPDATE
  sm_free_member sfm
SET
  sfm.order_id =
  (SELECT
    MAX(order_id)
  FROM
    sm_order so
  WHERE so.member_id = sfm.member_id
    AND package_id = 10
    AND STATUS = 2)
WHERE sfm.free_member_id IN
  (SELECT
    temp.free_member_id
  FROM
    (SELECT
      sfm.free_member_id
    FROM
      sm_free_member sfm,
      sm_member sm
    WHERE sfm.free_recom_id = 40
      AND sfm.member_id = sm.member_id
      AND (sm.type = 4
        OR sm.type = 5)) AS temp)



Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326521157&siteId=291194637