Я не говорю, что вы должны это делать, но, судя по потоку предоставленного вами кода, именно так вы могли бы сделать это.
UPDATE winners w
SET w.mem_name = '$addname'
, w.mem_id = IFNULL(SELECT m.mem_id
FROM members AS m
WHERE m.mem_name = '$addname'
ORDER BY m.mem_id DESC
LIMIT 1
, w.mem_id
)
WHERE w.mem_name = '$deletename'
;
Обратите внимание, что ORDER BY технически необязателен; в вашем вопросе не указано, является ли mem_name гарантированно уникальным в members
. Если он уникален, заказ не должен быть необходим; если это не так, это, по крайней мере, добавляет некоторую согласованность к ожидаемому полученному значению.
Если у вас есть контроль над дизайном базы данных, я бы предложил удалить mem_name
из winners
в целом. Это / будет избыточными данными, если вы сначала управляете отношением mem_id
.