Собственно задача раскладывется на 2:
1) выбрать "основные уникальные" записи
2) удалить записи, не попадающие в множество "основных уникальных"
2-я задача тривиальна
1-я задача довольно просто решается в МySQL 8 при помощи "оконных функций"
https://dev.mysql.com/doc/refman/8.0/en/window-fun...
в mySQL более ранних версий придется поизвращаться:
1) сделать уникальную выборку имен, телефонов имеющих телефон
2) сделать уникальную выборку имен не имеющих телефона и не попадающих в первую выборку
3) объединить их
вот пример такого запроса
SELECT DISTINCT surname, name_ FROM `sdtm_users_items` WHERE (patro='' OR patro IS NULL) AND (surname, name_) NOT IN (SELECT DISTINCT surname, name_ FROM `sdtm_users_items` WHERE patro<>'' AND patro IS NOT NULL) UNION SELECT DISTINCT surname, name_ FROM `sdtm_users_items` WHERE patro<>'' AND patro IS NOT NULL ORDER BY surname, name_