Как заголовок, если я вложу какой-нибудь html в таблицу.  Как я могу использовать mysql для извлечения открытого текста между тегами html? 
  Например: 
CREATE TABLE `test` ( `id` INT PRIMARY KEY, `plain` LONGTEXT ) INSERT INTO `text` VALUES (1, '<p>text between tag 'p'</p><span>text between 'span'</span>');   И перед вставкой, я хочу использовать триггер, чтобы извлечь простой текст, который я хочу.  Как? 
  Или использовать php?  Я имею в виду передать html скрипту php, а скрипт php выполняет извлечение. 
Но есть решение для моей проблемы, используя php, как насчет mysql?
Если ваш контент всегда начинается с тегов (и т. Д.),
попробуй это:
 SELECT * from table WHERE colmn_name REGEXP '>[^<]*mytext'; 
  Другой способ – использовать strip_tags – Стриптиз HTML и PHP-теги из строки 
 <?php $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>'; echo strip_tags($text); echo "\n"; // Allow <p> and <a> echo strip_tags($text, '<p><a>'); ?> 
Вывод кода выше:
 Test paragraph. Other text <p>Test paragraph.</p> <a href="#fragment">Other text</a> 
  Предупреждение :: Because strip_tags() does not actually validate the HTML, partial or broken tags can result in the removal of more text/data than expected. 
  Вы должны поместить код html в переменную, скажем, $html_input 
 $html_input= "'<p>text between tag 'p'</p><span>text between 'span'</span>'"; $stripped_html = strip_tags($html_input); // Now insert it into the table `text` INSERT INTO `text` VALUES (1, $striped_html); 
  Чисто MQSQL : 
 CREATE FUNCTION `strip_tags`($str text) RETURNS text BEGIN DECLARE $start, $end INT DEFAULT 1; LOOP SET $start = LOCATE("<", $str, $start); IF (!$start) THEN RETURN $str; END IF; SET $end = LOCATE(">", $str, $start); IF (!$end) THEN SET $end = $start; END IF; SET $str = INSERT($str, $start, $end - $start + 1, ""); END LOOP; END; mysql> select strip_tags('<span>hel<b>lo <a href="world">wo<>rld</a> <<x>again<.'); +----------------------------------------------------------------------+ | strip_tags('<span>hel<b>lo <a href="world">wo<>rld</a> <<x>again<.') | +----------------------------------------------------------------------+ | hello world again. | +----------------------------------------------------------------------+ 1 row in set 
Ссылка: Stackoverflow
  Используйте strip_tags() в строке, сохраните результат в переменной и затем используйте ее в своем запросе: 
 $str = "'<p>text between tag 'p'</p><span>text between 'span'</span>'"; $str = strip_tags($str); //'text between tag 'p'text between 'span'' $str = mysql_real_escape_string($str); //just for safety 
В вашем запросе:
 INSERT INTO `text` VALUES (1, $str); 
  Документация: strip_tags() , mysql_real_escape_string() 
Надеюсь это поможет!
Вы можете сделать это и в самой MySQL. Вам нужен эквивалент striptags php Funktion. Взгляните сюда
http://www.sitepoint.com/forums/showthread.php?656167-PHP-s-strip_tags()-equivalent-MYSQL-function
Обновление с некоторыми изменениями из одного из приведенных выше ответов.
 DELIMITER *** CREATE FUNCTION ConvertHTMLToText(str LONGTEXT CHARSET utf8) RETURNS LONGTEXT CHARSET utf8 BEGIN DECLARE start, end INT DEFAULT 1; LOOP SET start = LOCATE("<", str, start); IF (!start) THEN RETURN str; END IF; SET end = LOCATE(">", str, start); IF (!end) THEN SET end = start; END IF; SET str = TRIM(INSERT(str, start, end - start + 1, "")); END LOOP; END ***