Как выделить часть текста на MySQL? - PullRequest
0 голосов
/ 31 августа 2010

У меня есть столбец, сохраненный как LONGTEXT в MySQL.Этот текст сохраняет форматированный текст.В настоящее время я читаю весь текст, а затем исправляю его, используя javascript, чтобы получить первые 100 символы таким образом, чтобы не разбить слово в его середине.сделай это.Я хочу выбрать сводку напрямую, используя запрос, но я также хочу быть осторожным, чтобы не включать символы, которые являются HTML-тегами.

Кажется, что нижеприведенная функция прекрасно работает для удаления HTML.

1 Ответ

0 голосов
/ 31 августа 2010

часть решения заключается в том, чтобы выбрать текстовое использование

Это функция mysql , такая как функция php strip_tags

 DROP FUNCTION IF EXISTS htmlStrip;
CREATE FUNCTION htmlStrip(pmXml longtext)RETURNS longtext
DETERMINISTIC
htmlStrip:
BEGIN 
        DECLARE vStart INTEGER ;
    DECLARE vEnd INTEGER ;
    DECLARE vResult LONGTEXT;
    DECLARE vCount1 INTEGER;
    DECLARE vCount2 INTEGER;

    SET vResult:=pmXml;
    SET vCount1:=LENGTH(vResult)-LENGTH(REPLACE(vResult,'<',''));
    SET vCount2:=LENGTH(vResult)-LENGTH(REPLACE(vResult,'>',''));
    IF vCount1<>vCount2 THEN 
              RETURN 'Input Error'; 
    END IF;

    WHILE (LOCATE('<',vResult) OR LOCATE('>',vResult)) DO
         SET vStart:=LOCATE('<',vResult);
         SET vEnd:=LOCATE('>',vResult);
         SET vResult:=REPLACE(vResult,SUBSTRING(vResult,vStart,vEnd-vStart+1),'');
    END WHILE;
    RETURN vResult;
END;

    SELECT htmlStrip('<html>hello<body> how r u?</body></html>') AS Result

Result
--------
hello how r u?

, поэтому вам нужно использовать подстрока + strip_tags

...