>>>> 2012/03/08 16:11 -0500, Hank >>>>
I have a varchar field in the database, and I want to remove all text
between WordA and WordB, including WordA and WordB, leaving all text
before WordA and after WordB intact.

Possible with just SQL?  I know I can write a PHP program to do it,
but it's not that important to spend that much time on.  I'd like one
SQL statement to do it.
<<<<<<<<

One statement is hard, but maybe you'll take an SQL function?

IF field REGEXP (WordA || '.*' || WordB) THEN
        SET i = LOCATE(WordA, field),
        j = LOCATE(REVERSE(WordB), REVERSE(field));
        SET answer = LEFT(field, i-1) || RIGHT(field, j-1);
ELSE    SET answer = field;
END IF

or something like that (ANSI mode).

It would be much nicer to get a location pair out of REGEXP (RLIKE) than only a 
yes/no (1/0). In this case, the most useful _one_ number from REGEXP would be 
the length of the match.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql

Reply via email to