DELIMITER //
DROP FUNCTION IF EXISTS T_CUR //
CREATE DEFINER = CURRENT_USER FUNCTION T_CUR()
RETURNS VARCHAR(1024) CHARSET UTF8
DETERMINISTIC
LANGUAGE SQL
SQL SECURITY INVOKER
BEGIN
DECLARE T_RET VARCHAR(1024) DEFAULT '';
DECLARE T_I, T_C, T_E BIGINT DEFAULT 0;
DECLARE F_NAME, F_OPIS VARCHAR(1024) DEFAULT '';
DECLARE T_CURS CURSOR FOR SELECT `id`, `id_sd` FROM `ac_ac`;
DECLARE EXIT HANDLER FOR NOT FOUND SET T_E:= 1;
SET T_C:= (SELECT COUNT(`id`) FROM `ac_ac`);
OPEN T_CURS;
MW:LOOP
FETCH T_CURS INTO F_NAME, F_OPIS;
SET T_I:= T_I + 1;
IF (SELECT COUNT(`id`) FROM `ac_ac` WHERE `id_sd` = F_OPIS) >= 2 THEN
SET T_RET:= CONCAT_WS(',', T_RET, F_NAME);
END IF;
IF T_I >= T_C || T_E = 1 THEN LEAVE MW; END IF;
END LOOP MW;
CLOSE T_CURS;
RETURN LEFT(RIGHT(T_RET) - 1, 1024);
END //
DELIMITER ;
Хранимая функция выполняющая выборку повторяющихся два и более раз произвольное значение поля с именем `id_sd` и типом BIGINT UNSIGNED (большое целочисленное) и возвращает ее `id` перечисленные через запятую, таблицы с именем ac_ac которая в свою очередь имеет следующую структуру:
CREATE TABLE IF NOT EXISTS `ac_ac`
(
`id` SERIAL,
`id_sd` BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
KEY (`id_sd`)
) ENGINE InnoDB CHARACTER SET UTF8 COLLATE utf8_general_ci;
Задача проста, подставьте нужные имена ячеек, и имя таблицы в функции на свои.
Залейте ее через phpMyAdmin, используйте как, встроенную функцию SQL в предложении SELECT исполняемого запроса в связке к примеру с IN.
Пожалуйста, пользуйтесь на здоровье)