Ciao a tutt*, stò cercando di fare una funzione sql che, prendendo dei dati VARCHAR estratti con GROUP_CONCAT e separati da ; mi restituisca la parola più lunga tra le presenti da assegnare alla mail (dato che considero questo dato come univoco).
Per spiegarmi meglio:
facendo un'estrazione prendo dati da diverse tabelle che confluiscono in una unica tabella, facendo questo però mi porto dietro dei duplicati che vorrei bonificare.
Per es. tab. newsletter e tab abbonati, da entrambe estraggo la mail pippo@topolinia.it che però in un caso è associata a nome=pippo e conome=cognome mentre in un altro è associata a nome=pi e cognome=deric.
Quello che vorrei fare, dopo aver ottenuto: pippo@topolinia.it | pippo;pi | cognome;deric col GROUP_CONCAT, è una funzione che, penso utilizzando CHAR_LENGHT, mi estragga la "parola più lunga" da inserire nella tabella di destinazione associata alla mail.
Qualcuno ha dei suggerimenti da darmi perchè io non riesco a uscirne ...
Qui sotto quello che ho iniziato a fare.
Grazie mille!!!
DELIMITER $$
DROP FUNCTION IF EXISTS `test`.`split` $$
CREATE FUNCTION `split`( nome VARCHAR (255) )
RETURNS varchar (255) DETERMINISTIC
BEGIN
SET nome = CHAR_LENGHT('nome')
???????????????
RETURN nome;
INSERT INTO elenco_mail ('nome')
END$$
DELIMITER ;