Ho buttato giù una function che dovrebbe fare quello che chiedi anche se l'ho testata solo molto superficialmente:
che puoi invocare così:codice:CREATE FUNCTION my_find( x VARCHAR(255), delim VARCHAR(12), find VARCHAR(255) ) RETURNS VARCHAR(255) BEGIN DECLARE res VARCHAR(255); DECLARE tmp VARCHAR(255); DECLARE tmp2 VARCHAR(255); DECLARE str VARCHAR(255); SET tmp = ''; SELECT colonna FROM tabella INTO str; REPEAT SELECT SUBSTRING_INDEX(str, ' ', 1) INTO tmp2; IF STRCMP(SUBSTRING(tmp2, 1, LENGTH(find)), find) = 0 THEN SET tmp = CONCAT(tmp, tmp2, ' '); END IF; SET str = SUBSTRING(str, LENGTH(tmp2) + 2); UNTIL str = '' END REPEAT; RETURN tmp; END
in cui a colonna, tabella e stringa_di_ricerca sostituirai i giusti valori.codice:SELECT my_find(colonna, ' ', 'stringa_di_ricerca') as risultato FROM tabella;
Nel caso:
colonna contiene: pluto pippo paperino paperoga paperone poldo
stringa_di_ricerca: 'pa'
restituisce:
paperino paperoga paperone

Rispondi quotando